Disassembly: 
  L1: 8b ff ?? mov edi, edi
   55 ?? push ebp
   8b ec ?? mov ebp, esp
   8b 45 0c ?? mov eax, dword ss:[ebp + 12]
   83 ec 10 ?? sub esp, 0x10<16>
   53 ?? push ebx
   56 ?? push esi
   33 d2 ?? xor edx, edx
   57 ?? push edi
   bf 00 03 00 00 ?? mov edi, 0x00000300<768>
   39 55 10 ?? cmp dword ss:[ebp + 0x10<16>], edx
   0f 84 53 01 00 00 ?? je basic block L55
  
  L2: 9b ?? wait
   d9 7d f8 ?? fnstcw word ss:[ebp + 0xf8<248,-8>]
   8b 5d f8 ?? mov ebx, dword ss:[ebp + 0xf8<248,-8>]
   f6 c3 01 ?? test bl, 1
   74 03 ?? je basic block L4
  
  L3: 6a 10 ?? push 0x10<16>
   5a ?? pop edx
  
  L4: f6 c3 04 ?? test bl, 4
   74 03 ?? je basic block L6
  
  L5: 83 ca 08 ?? or edx, 8
  
  L6: f6 c3 08 ?? test bl, 8
   74 03 ?? je basic block L8
  
  L7: 83 ca 04 ?? or edx, 4
  
  L8: f6 c3 10 ?? test bl, 0x10<16>
   74 03 ?? je basic block L10
  
  L9: 83 ca 02 ?? or edx, 2
  
  L10: f6 c3 20 ?? test bl, 0x20<32>
   74 03 ?? je basic block L12
  
  L11: 83 ca 01 ?? or edx, 1
  
  L12: f6 c3 02 ?? test bl, 2
   74 06 ?? je basic block L14
  
  L13: 81 ca 00 00 08 00 ?? or edx, 0x00080000
  
  L14: 0f b7 c3 ?? movzx eax, bx
   8b c8 ?? mov ecx, eax
   be 00 0c 00 00 ?? mov esi, 0x00000c00<3072>
   23 ce ?? and ecx, esi
   74 26 ?? je basic block L21
  
  L15: 81 f9 00 04 00 00 ?? cmp ecx, 0x00000400<1024>
   74 18 ?? je basic block L20
  
  L16: 81 f9 00 08 00 00 ?? cmp ecx, 0x00000800<2048>
   74 08 ?? je basic block L19
  
  L17: 3b ce ?? cmp ecx, esi
   75 12 ?? jne basic block L21
  
  L18: 0b d7 ?? or edx, edi
   eb 0e ?? jmp basic block L21
  
  L19: 81 ca 00 02 00 00 ?? or edx, 0x00000200<512>
   eb 06 ?? jmp basic block L21
  
  L20: 81 ca 00 01 00 00 ?? or edx, 0x00000100<256>
  
  L21: 23 c7 ?? and eax, edi
   74 0f ?? je basic block L24
  
  L22: 3d 00 02 00 00 ?? cmp eax, 0x00000200<512>
   75 0e ?? jne basic block L25
  
  L23: 81 ca 00 00 01 00 ?? or edx, 0x00010000
   eb 06 ?? jmp basic block L25
  
  L24: 81 ca 00 00 02 00 ?? or edx, 0x00020000
  
  L25: f7 c3 00 10 00 00 ?? test ebx, 0x00001000<4096>
   74 06 ?? je basic block L27
  
  L26: 81 ca 00 00 04 00 ?? or edx, 0x00040000
  
  L27: 8b 5d 0c ?? mov ebx, dword ss:[ebp + 12]
   8b 45 08 ?? mov eax, dword ss:[ebp + 8]
   23 45 0c ?? and eax, dword ss:[ebp + 12]
   f7 d3 ?? not ebx
   23 da ?? and ebx, edx
   0b d8 ?? or ebx, eax
   3b da ?? cmp ebx, edx
   0f 84 9f 00 00 00 ?? je basic block L54
  
  L28: e8 d3 f8 ff ff ?? call function 0x0042ad08
  
  L29: 0f b7 c0 ?? movzx eax, ax
   89 45 fc ?? mov dword ss:[ebp + 0xfc<252,-4>], eax
   d9 6d fc ?? fldcw word ss:[ebp + 0xfc<252,-4>]
   9b ?? wait
   d9 7d fc ?? fnstcw word ss:[ebp + 0xfc<252,-4>]
   8b 55 fc ?? mov edx, dword ss:[ebp + 0xfc<252,-4>]
   33 db ?? xor ebx, ebx
   f6 c2 01 ?? test dl, 1
   74 03 ?? je basic block L31
  
  L30: 6a 10 ?? push 0x10<16>
   5b ?? pop ebx
  
  L31: f6 c2 04 ?? test dl, 4
   74 03 ?? je basic block L33
  
  L32: 83 cb 08 ?? or ebx, 8
  
  L33: f6 c2 08 ?? test dl, 8
   74 03 ?? je basic block L35
  
  L34: 83 cb 04 ?? or ebx, 4
  
  L35: f6 c2 10 ?? test dl, 0x10<16>
   74 03 ?? je basic block L37
  
  L36: 83 cb 02 ?? or ebx, 2
  
  L37: f6 c2 20 ?? test dl, 0x20<32>
   74 03 ?? je basic block L39
  
  L38: 83 cb 01 ?? or ebx, 1
  
  L39: f6 c2 02 ?? test dl, 2
   74 06 ?? je basic block L41
  
  L40: 81 cb 00 00 08 00 ?? or ebx, 0x00080000
  
  L41: 0f b7 ca ?? movzx ecx, dx
   8b c1 ?? mov eax, ecx
   23 c6 ?? and eax, esi
   74 24 ?? je basic block L48
  
  L42: 3d 00 04 00 00 ?? cmp eax, 0x00000400<1024>
   74 17 ?? je basic block L47
  
  L43: 3d 00 08 00 00 ?? cmp eax, 0x00000800<2048>
   74 08 ?? je basic block L46
  
  L44: 3b c6 ?? cmp eax, esi
   75 12 ?? jne basic block L48
  
  L45: 0b df ?? or ebx, edi
   eb 0e ?? jmp basic block L48
  
  L46: 81 cb 00 02 00 00 ?? or ebx, 0x00000200<512>
   eb 06 ?? jmp basic block L48
  
  L47: 81 cb 00 01 00 00 ?? or ebx, 0x00000100<256>
  
  L48: 23 cf ?? and ecx, edi
   74 10 ?? je basic block L51
  
  L49: 81 f9 00 02 00 00 ?? cmp ecx, 0x00000200<512>
   75 0e ?? jne basic block L52
  
  L50: 81 cb 00 00 01 00 ?? or ebx, 0x00010000
   eb 06 ?? jmp basic block L52
  
  L51: 81 cb 00 00 02 00 ?? or ebx, 0x00020000
  
  L52: f7 c2 00 10 00 00 ?? test edx, 0x00001000<4096>
   74 06 ?? je basic block L54
  
  L53: 81 cb 00 00 04 00 ?? or ebx, 0x00040000
  
  L54: 8b 45 10 ?? mov eax, dword ss:[ebp + 0x10<16>]
   89 18 ?? mov dword ds:[eax], ebx
   8b 45 0c ?? mov eax, dword ss:[ebp + 12]
  
  L55: 83 7d 14 00 ?? cmp dword ss:[ebp + 0x14<20>], 0
   0f 84 91 01 00 00 ?? je basic block L114
  
  L56: 33 f6 ?? xor esi, esi
   39 35 e0 6c 44 00 ?? cmp dword ds:[0x00446ce0], esi
   0f 84 7e 01 00 00 ?? je basic block L113
  
  L57: 25 1f 03 08 03 ?? and eax, 0x0308031f
   89 45 f0 ?? mov dword ss:[ebp + 0xf0<240,-16>], eax
   0f ae 5d f4 ?? stmxcsr dword ss:[ebp + 0xf4<244,-12>]
   8b 45 f4 ?? mov eax, dword ss:[ebp + 0xf4<244,-12>]
   84 c0 ?? test al, al
   79 03 ?? jns basic block L59
  
  L58: 6a 10 ?? push 0x10<16>
   5e ?? pop esi
  
  L59: a9 00 02 00 00 ?? test eax, 0x00000200<512>
   74 03 ?? je basic block L61
  
  L60: 83 ce 08 ?? or esi, 8
  
  L61: a9 00 04 00 00 ?? test eax, 0x00000400<1024>
   74 03 ?? je basic block L63
  
  L62: 83 ce 04 ?? or esi, 4
  
  L63: a9 00 08 00 00 ?? test eax, 0x00000800<2048>
   74 03 ?? je basic block L65
  
  L64: 83 ce 02 ?? or esi, 2
  
  L65: a9 00 10 00 00 ?? test eax, 0x00001000<4096>
   74 03 ?? je basic block L67
  
  L66: 83 ce 01 ?? or esi, 1
  
  L67: a9 00 01 00 00 ?? test eax, 0x00000100<256>
   74 06 ?? je basic block L69
  
  L68: 81 ce 00 00 08 00 ?? or esi, 0x00080000
  
  L69: 8b c8 ?? mov ecx, eax
   bf 00 60 00 00 ?? mov edi, 0x00006000<24576>
   23 cf ?? and ecx, edi
   74 2a ?? je basic block L76
  
  L70: 81 f9 00 20 00 00 ?? cmp ecx, 0x00002000<8192>
   74 1c ?? je basic block L75
  
  L71: 81 f9 00 40 00 00 ?? cmp ecx, 0x00004000<16384>
   74 0c ?? je basic block L74
  
  L72: 3b cf ?? cmp ecx, edi
   75 16 ?? jne basic block L76
  
  L73: 81 ce 00 03 00 00 ?? or esi, 0x00000300<768>
   eb 0e ?? jmp basic block L76
  
  L74: 81 ce 00 02 00 00 ?? or esi, 0x00000200<512>
   eb 06 ?? jmp basic block L76
  
  L75: 81 ce 00 01 00 00 ?? or esi, 0x00000100<256>
  
  L76: bb 40 80 00 00 ?? mov ebx, 0x00008040<32832>
   23 c3 ?? and eax, ebx
   83 e8 40 ?? sub eax, 0x40<64>
   74 1c ?? je basic block L81
  
  L77: 2d c0 7f 00 00 ?? sub eax, 0x00007fc0<32704>
   74 0d ?? je basic block L80
  
  L78: 83 e8 40 ?? sub eax, 0x40<64>
   75 16 ?? jne basic block L82
  
  L79: 81 ce 00 00 00 01 ?? or esi, 0x01000000
   eb 0e ?? jmp basic block L82
  
  L80: 81 ce 00 00 00 03 ?? or esi, 0x03000000
   eb 06 ?? jmp basic block L82
  
  L81: 81 ce 00 00 00 02 ?? or esi, 0x02000000
  
  L82: 8b 45 f0 ?? mov eax, dword ss:[ebp + 0xf0<240,-16>]
   8b d0 ?? mov edx, eax
   23 45 08 ?? and eax, dword ss:[ebp + 8]
   f7 d2 ?? not edx
   23 d6 ?? and edx, esi
   0b d0 ?? or edx, eax
   3b d6 ?? cmp edx, esi
   75 07 ?? jne basic block L84
  
  L83: 8b c6 ?? mov eax, esi
   e9 b0 00 00 00 ?? jmp basic block L112
  
  L84: e8 be f8 ff ff ?? call function 0x0042ae79
  
  L85: 50 ?? push eax
   89 45 10 ?? mov dword ss:[ebp + 0x10<16>], eax
   e8 dc 11 00 00 ?? call function 0x0042c7a0
  
  L86: 59 ?? pop ecx
   0f ae 5d 10 ?? stmxcsr dword ss:[ebp + 0x10<16>]
   8b 4d 10 ?? mov ecx, dword ss:[ebp + 0x10<16>]
   33 d2 ?? xor edx, edx
   84 c9 ?? test cl, cl
   79 03 ?? jns basic block L88
  
  L87: 6a 10 ?? push 0x10<16>
   5a ?? pop edx
  
  L88: f7 c1 00 02 00 00 ?? test ecx, 0x00000200<512>
   74 03 ?? je basic block L90
  
  L89: 83 ca 08 ?? or edx, 8
  
  L90: f7 c1 00 04 00 00 ?? test ecx, 0x00000400<1024>
   74 03 ?? je basic block L92
  
  L91: 83 ca 04 ?? or edx, 4
  
  L92: f7 c1 00 08 00 00 ?? test ecx, 0x00000800<2048>
   74 03 ?? je basic block L94
  
  L93: 83 ca 02 ?? or edx, 2
  
  L94: f7 c1 00 10 00 00 ?? test ecx, 0x00001000<4096>
   74 03 ?? je basic block L96
  
  L95: 83 ca 01 ?? or edx, 1
  
  L96: be 00 01 00 00 ?? mov esi, 0x00000100<256>
   85 ce ?? test esi, ecx
   74 06 ?? je basic block L98
  
  L97: 81 ca 00 00 08 00 ?? or edx, 0x00080000
  
  L98: 8b c1 ?? mov eax, ecx
   23 c7 ?? and eax, edi
   74 24 ?? je basic block L105
  
  L99: 3d 00 20 00 00 ?? cmp eax, 0x00002000<8192>
   74 1b ?? je basic block L104
  
  L100: 3d 00 40 00 00 ?? cmp eax, 0x00004000<16384>
   74 0c ?? je basic block L103
  
  L101: 3b c7 ?? cmp eax, edi
   75 12 ?? jne basic block L105
  
  L102: 81 ca 00 03 00 00 ?? or edx, 0x00000300<768>
   eb 0a ?? jmp basic block L105
  
  L103: 81 ca 00 02 00 00 ?? or edx, 0x00000200<512>
   eb 02 ?? jmp basic block L105
  
  L104: 0b d6 ?? or edx, esi
  
  L105: 23 cb ?? and ecx, ebx
   83 e9 40 ?? sub ecx, 0x40<64>
   74 1d ?? je basic block L110
  
  L106: 81 e9 c0 7f 00 00 ?? sub ecx, 0x00007fc0<32704>
   74 0d ?? je basic block L109
  
  L107: 83 e9 40 ?? sub ecx, 0x40<64>
   75 16 ?? jne basic block L111
  
  L108: 81 ca 00 00 00 01 ?? or edx, 0x01000000
   eb 0e ?? jmp basic block L111
  
  L109: 81 ca 00 00 00 03 ?? or edx, 0x03000000
   eb 06 ?? jmp basic block L111
  
  L110: 81 ca 00 00 00 02 ?? or edx, 0x02000000
  
  L111: 8b c2 ?? mov eax, edx
  
  L112: 8b 4d 14 ?? mov ecx, dword ss:[ebp + 0x14<20>]
   89 01 ?? mov dword ds:[ecx], eax
   eb 05 ?? jmp basic block L114
  
  L113: 8b 45 14 ?? mov eax, dword ss:[ebp + 0x14<20>]
   89 30 ?? mov dword ds:[eax], esi
  
  L114: 5f ?? pop edi
   33 c0 ?? xor eax, eax
   5e ?? pop esi
   40 ?? inc eax
   5b ?? pop ebx
   c9 ?? leave
   c3 ?? ret
  
  