Function at 0x40e640
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x750
mov esi, esp
mov al, byte [esi + 0x1ec]
mov byte [esi + 0x1f0], al
mov byte [esi + 0x44c], 0x79
mov byte [esi + 0x44d], 0xe7
mov eax, 2
mov byte [esi + eax + 0x44c], 0
add eax, 1
cmp eax, 5
jne 0x40e670
xor eax, eax
cmp eax, 5
jae 0x40e6b1
mov dl, byte [esi + eax + 0x44c]
mov ecx, eax
and ecx, 0xd9
mov edi, eax
and edi, 0x26
xor edi, 0x27
sub ecx, edi
xor cl, dl
add cl, 0xc3
mov byte [esi + eax + 0x44c], cl
add eax, 1
jmp 0x40e682
sub esp, 8
lea eax, [esi + 0x44c]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.004019c0
add esp, 8
mov dword [esi + 0x90], eax
push eax
mov ebx, esp
push eax
mov edi, esp
mov dword [ebx], 0x99030862
mov dword [edi], ebx
mov dword [esi + 4], ebx
mov dword [esi], edi
mov eax, dword [ebx]
mov ecx, eax
sub ecx, 0x8212801b
je 0x410e59
jmp 0x40e6f7
mov ecx, eax
sub ecx, 0x8401fac1
je 0x41015a
jmp 0x40e707
mov ecx, eax
sub ecx, 0x844a4b7d
je 0x41031d
jmp 0x40e717
mov ecx, eax
sub ecx, 0x853c4519
je 0x41042f
jmp 0x40e727
mov ecx, eax
sub ecx, 0x8560c4c4
je 0x411deb
jmp 0x40e737
mov ecx, eax
sub ecx, 0x86ef5f12
je 0x41307f
jmp 0x40e747
mov ecx, eax
sub ecx, 0x89e45c20
je 0x40f60c
jmp 0x40e757
mov ecx, eax
sub ecx, 0x8a2fbd3b
je 0x4117e2
jmp 0x40e767
mov ecx, eax
sub ecx, 0x8a75a5f4
je 0x412526
jmp 0x40e777
mov ecx, eax
sub ecx, 0x8af7f50e
je 0x4115aa
jmp 0x40e787
mov ecx, eax
sub ecx, 0x8b642103
je 0x411a66
jmp 0x40e797
mov ecx, eax
sub ecx, 0x8d1b6d98
je 0x410e3a
jmp 0x40e7a7
mov ecx, eax
sub ecx, 0x8d9e192b
je 0x410513
jmp 0x40e7b7
mov ecx, eax
sub ecx, 0x901635cc
je 0x40f9fa
jmp 0x40e7c7
mov ecx, eax
sub ecx, 0x90a0118a
je 0x410179
jmp 0x40e7d7
mov ecx, eax
sub ecx, 0x919f0c12
je 0x41343e
jmp 0x40e7e7
mov ecx, eax
sub ecx, 0x91b9c68b
je 0x4105dd
jmp 0x40e7f7
mov ecx, eax
sub ecx, 0x91fbea96
je 0x4123ef
jmp 0x40e807
mov ecx, eax
sub ecx, 0x924be9fe
je 0x40f39b
jmp 0x40e817
mov ecx, eax
sub ecx, 0x9288d3c9
je 0x4117af
jmp 0x40e827
mov ecx, eax
sub ecx, 0x9472e72c
je 0x41277e
jmp 0x40e837
mov ecx, eax
sub ecx, 0x965daa6d
je 0x41267f
jmp 0x40e847
mov ecx, eax
sub ecx, 0x97280667
je 0x412647
jmp 0x40e857
mov ecx, eax
sub ecx, 0x977a8f53
je 0x413298
jmp 0x40e867
mov ecx, eax
sub ecx, 0x99030862
je 0x40f32a
jmp 0x40e877
mov ecx, eax
sub ecx, 0x998cde29
je 0x4112e7
jmp 0x40e887
mov ecx, eax
sub ecx, 0x99b7d352
je 0x40f51d
jmp 0x40e897
mov ecx, eax
sub ecx, 0x99d0235f
je 0x413407
jmp 0x40e8a7
mov ecx, eax
sub ecx, 0x9c8dd775
je 0x410982
jmp 0x40e8b7
mov ecx, eax
sub ecx, 0x9e88c017
je 0x411430
jmp 0x40e8c7
mov ecx, eax
sub ecx, 0x9f42c55b
je 0x412fd9
jmp 0x40e8d7
mov ecx, eax
sub ecx, 0xa139470d
je 0x412be5
jmp 0x40e8e7
mov ecx, eax
sub ecx, 0xa1e0ae97
je 0x410eaa
jmp 0x40e8f7
mov ecx, eax
sub ecx, 0xa217992e
je 0x4111bd
jmp 0x40e907
mov ecx, eax
sub ecx, 0xa2d58514
je 0x411059
jmp 0x40e917
mov ecx, eax
sub ecx, 0xa3adb089
je 0x410125
jmp 0x40e927
mov ecx, eax
sub ecx, 0xa70c5a64
je 0x4104a1
jmp 0x40e937
mov ecx, eax
sub ecx, 0xa7f7c178
je 0x412a9d
jmp 0x40e947
mov ecx, eax
sub ecx, 0xa95a57c3
je 0x41140a
jmp 0x40e957
mov ecx, eax
sub ecx, 0xaefd2347
je 0x4125a0
jmp 0x40e967
mov ecx, eax
sub ecx, 0xaf608e1b
je 0x40f76a
jmp 0x40e977
mov ecx, eax
sub ecx, 0xb14de8e9
je 0x411884
jmp 0x40e987
mov ecx, eax
sub ecx, 0xb1ee9cfe
je 0x40f643
jmp 0x40e997
mov ecx, eax
sub ecx, 0xb574ba86
je 0x40f34b
jmp 0x40e9a7
mov ecx, eax
sub ecx, 0xb83afa0b
je 0x410e47
jmp 0x40e9b7
mov ecx, eax
sub ecx, 0xb90dd37a
je 0x4130cf
jmp 0x40e9c7
mov ecx, eax
sub ecx, 0xbae2bb2c
je 0x412f36
jmp 0x40e9d7
mov ecx, eax
sub ecx, 0xbd86d950
je 0x412f5c
jmp 0x40e9e7
mov ecx, eax
sub ecx, 0xbe35692d
je 0x41041d
jmp 0x40e9f7
mov ecx, eax
sub ecx, 0xc10d70a6
je 0x40f50b
jmp 0x40ea07
mov ecx, eax
sub ecx, 0xc37ca086
je 0x410970
jmp 0x40ea17
mov ecx, eax
sub ecx, 0xc3aa49aa
je 0x412f80
jmp 0x40ea27
mov ecx, eax
sub ecx, 0xc48ed1a4
je 0x412f92
jmp 0x40ea37
mov ecx, eax
sub ecx, 0xc58beb47
je 0x411c8e
jmp 0x40ea47
mov ecx, eax
sub ecx, 0xc7af7bbc
je 0x41174a
jmp 0x40ea57
mov ecx, eax
sub ecx, 0xc8156b06
je 0x41273d
jmp 0x40ea67
mov ecx, eax
sub ecx, 0xc89a7269
je 0x410030
jmp 0x40ea77
mov ecx, eax
sub ecx, 0xc8b350fe
je 0x4131c6
jmp 0x40ea87
mov ecx, eax
sub ecx, 0xcaffe177
je 0x41048f
jmp 0x40ea97
mov ecx, eax
sub ecx, 0xcb297ad6
je 0x411770
jmp 0x40eaa7
mov ecx, eax
sub ecx, 0xcf553b9f
je 0x41134c
jmp 0x40eab7
mov ecx, eax
sub ecx, 0xd1787654
je 0x412e0c
jmp 0x40eac7
mov ecx, eax
sub ecx, 0xd192d9e9
je 0x412691
jmp 0x40ead7
mov ecx, eax
sub ecx, 0xd1fd7b2a
je 0x4112a7
mov eax, 0xb574ba86
cmp dword [esi + 0x90], 0
je 0x40f33d
mov eax, 0x7d10cb37
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 4]
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x86ef5f12
mov byte [esi + 0x13], 0
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0x90]
sub esp, 4
mov dword [esp], eax
call fcn.00401be0
add esp, 4
cmp dword [esi + 0xb8], eax
setb al
and al, 1
mov byte [esi + 0x24], al
mov eax, dword [edi]
mov dword [eax], 0xf34c0880
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x610a2abd
mov ebx, dword [esi + 4]
jmp 0x41353d
mov al, byte [esi + 0x1e4]
mov byte [esi + 0x1f8], al
mov byte [esi + 0x80], 0x58
mov byte [esi + 0x81], 0xc7
mov eax, 2
mov byte [esi + eax + 0x80], 0
add eax, 1
cmp eax, 4
jne 0x40f53c
xor eax, eax
cmp eax, 4
jae 0x40f58d
movzx ebx, byte [esi + eax + 0x80]
mov ecx, eax
add ecx, 0xb1
mov edi, 0x4e
sub edi, eax
mov edx, 0x4e
sub edx, eax
or edi, edx
xor edi, 0xffffffff
mov edx, ebx
or edx, edi
and ecx, ebx
sub edx, ecx
add dl, 0x8b
mov byte [esi + eax + 0x80], dl
add eax, 1
jmp 0x40f54e
mov eax, dword [esi + 8]
sub esp, 8
lea ecx, [esi + 0x80]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00401950
add esp, 8
fnstcw word [esi + 0x8e]
movzx eax, word [esi + 0x8e]
or eax, 0xc00
mov word [esi + 0x2c6], ax
fldcw word [esi + 0x2c6]
fistp dword [esi + 0x4a8]
fldcw word [esi + 0x8e]
mov eax, dword [esi + 0x4a8]
mov dword [esi + 0x50], eax
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xfed22dea
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, 0x9472e72c
cmp dword [esi + 0x50], 3
jl 0x40f61c
mov eax, 0x29a0118a
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x41353d
mov eax, 0x5b1401c8
cmp dword [esi + 0x50], 1
jl 0x40f653
mov eax, 0x6d02706c
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 4]
jmp 0x41353d
mov al, byte [esi + 0x20]
mov byte [esi + 0x204], al
mov byte [esi + 0xc], 0x9d
mov byte [esi + 0xd], 0x91
mov byte [esi + 0xe], 0x92
mov byte [esi + 0xf], 0x93
xor eax, eax
cmp eax, 4
jae 0x40f7ad
movzx edx, byte [esi + eax + 0xc]
mov ecx, eax
add ecx, 0xae649f24
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0x4c
mov byte [esi + eax + 0xc], cl
add eax, 1
jmp 0x40f785
mov eax, dword [esi + 0xc]
mov dword [esi + 0x488], eax
mov al, byte [esi + 0x1c]
mov byte [esi + 0x20c], al
mov byte [esi + 0x78], 0x97
mov byte [esi + 0x79], 0x7b
mov eax, 2
mov byte [esi + eax + 0x78], 0
add eax, 1
cmp eax, 7
jne 0x40f7cc
xor ebx, ebx
cmp ebx, 7
jae 0x40f82d
movzx ecx, byte [esi + ebx + 0x78]
mov edi, ebx
add edi, 0x2c6e7bf
mov edx, 0x40
sub edx, ebx
mov eax, ecx
add eax, 1
mov dword [esi + 0x458], eax
mov eax, ecx
xor eax, 0xffffffff
or edx, eax
add edx, dword [esi + 0x458]
xor ecx, 0xffffffff
and edi, ecx
or edx, edi
mov eax, edx
xor eax, 0xdc
shl edx, 1
and edx, 0x46
sub edx, eax
add dl, 0x21
mov byte [esi + ebx + 0x78], dl
add ebx, 1
jmp 0x40f7db
mov eax, dword [esi + 8]
lea ecx, [esi + 0x78]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esi + 0x488]
mov dword [esp + 8], eax
call fcn.00401b80
add esp, 0xc
cmp eax, 0
setne al
and al, 1
mov byte [esi + 0x25], al
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x448690f5
mov ebx, dword [esi + 4]
jmp 0x41353d
mov al, byte [esi + 0x1d4]
mov byte [esi + 0x218], al
mov byte [esi + 0x310], 0xbe
mov byte [esi + 0x311], 0xae
mov byte [esi + 0x312], 0x5a
mov eax, 3
mov byte [esi + eax + 0x310], 0
add eax, 1
cmp eax, 7
jne 0x40fa20
xor eax, eax
cmp eax, 7
jae 0x40fa7d
movzx edx, byte [esi + eax + 0x310]
mov edi, eax
add edi, 0x1cdbaa8f
mov ecx, 0x63245570
sub ecx, eax
and ecx, 0xc62ff422
and edi, 0x39d00bdd
xor edx, 0xc62ff422
or ecx, edi
mov edi, ecx
and edi, edx
shl edi, 1
sub ecx, edi
mov edi, dword [esi]
add ecx, edx
add cl, 0x35
mov byte [esi + eax + 0x310], cl
add eax, 1
jmp 0x40fa32
mov eax, dword [esi + 8]
sub esp, 0xc
lea ecx, [esi + 0x310]
mov dword [esp + 4], ecx
mov dword [esp], eax
mov dword [esp + 8], 3
call fcn.00401b80
add esp, 0xc
sub eax, 1
mov cl, 1
sbb cl, 0xff
mov eax, 0x12209dac
test cl, 1
jne 0x40fab7
mov eax, 0x5895242f
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x256a169e
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0x30]
sub esp, 4
mov dword [esp], eax
call fcn.004085a0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x56e0daa4
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [edi]
mov dword [eax], 0x45397c3f
jmp 0x41353d
mov eax, dword [edi]
mov dword [eax], 0x3b6aa193
jmp 0x41353d
mov eax, dword [esi + 0xcc]
sub esp, 4
mov dword [esp], eax
call fcn.004173f0
add esp, 4
mov edi, eax
sub edi, 0xffffffff
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41034e
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408590
add esp, 4
mov dword [esi + 0xd0], eax
mov eax, dword [esi + 0xd0]
mov ecx, dword [esi + 0xcc]
xor edx, edx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.0040ab80
add esp, 0x10
mov ecx, dword [esi + 0xd0]
mov eax, dword [esi + 0xc4]
mov edx, dword [esi + 0xc0]
mov bl, byte [esi + 0x26]
mov byte [esi + 0x22], bl
mov edi, dword [esi + 0x4c0]
mov ebx, dword [esi + 0x4bc]
sub esp, 0x1c
mov dword [esp + 0x14], ebx
mov dword [esp + 0x10], edi
mov dword [esp + 0xc], ecx
mov dword [esp + 8], edx
mov dword [esp + 4], eax
lea eax, [esi + 0x6c0]
mov dword [esp], eax
movzx eax, byte [esi + 0x22]
and eax, 1
mov dword [esp + 0x18], eax
call fcn.00421fe0
add esp, 0x1c
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x445094c3
mov ebx, dword [esi + 4]
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x853c4519
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0xc8]
add eax, 1
mov dword [esi + 0x4c4], eax
mov eax, dword [edi]
mov dword [eax], 0x1c8b91b3
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xa70c5a64
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0xc0]
sub esp, 4
mov dword [esp], eax
call fcn.004085a0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x55aa9617
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [edi]
mov dword [eax], 0x29296297
jmp 0x41353d
mov eax, 0xeb5d05d6
test byte [esi + 0x28], 1
jne 0x4105ed
mov eax, 0xc37ca086
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x12209dac
mov ebx, dword [esi + 4]
jmp 0x41353d
mov al, byte [esi + 0x194]
mov byte [esi + 0x254], al
mov byte [esi + 0x3fc], 0xc3
mov byte [esi + 0x3fd], 0x79
mov eax, 2
mov byte [esi + eax + 0x3fc], 0
add eax, 1
cmp eax, 7
jne 0x4109a1
xor eax, eax
cmp eax, 7
jae 0x410a07
movzx edx, byte [esi + eax + 0x3fc]
mov edi, eax
add edi, 0x38b1f816
mov ecx, 0x74e07e9
sub ecx, eax
and ecx, 0x38c8124c
and edi, 0xc737edb3
or ecx, edi
xor ecx, edx
xor ecx, 0xc737edb3
add ecx, 1
mov edx, ecx
shl edx, 1
and edx, 0xde
xor ecx, 0x6f
add ecx, edx
mov dl, 1
sub dl, cl
mov byte [esi + eax + 0x3fc], dl
add eax, 1
jmp 0x4109b3
mov eax, dword [esi + 8]
lea ecx, [esi + 0x3fc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018f0
add esp, 8
mov dword [esi + 0x324], eax
mov al, byte [esi + 0x190]
mov byte [esi + 0x258], al
mov byte [esi + 0x3f4], 0xc8
mov byte [esi + 0x3f5], 0x79
mov eax, 2
mov byte [esi + eax + 0x3f4], 0
add eax, 1
cmp eax, 8
jne 0x410a47
xor eax, eax
cmp eax, 8
jae 0x410aa7
movzx edi, byte [esi + eax + 0x3f4]
mov edx, 0xd1dd7069
sub edx, eax
or edx, edi
xor edi, 0xffffffff
mov ecx, eax
add ecx, 0x96
or ecx, edi
and ecx, edx
mov edx, ecx
add edx, 0xef
or edx, 1
mov edi, ecx
add edi, 0xef
or edi, 1
add edx, 0x11
add ecx, edi
sub edx, ecx
mov byte [esi + eax + 0x3f4], dl
add eax, 1
jmp 0x410a59
mov eax, dword [esi + 8]
lea ecx, [esi + 0x3f4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018f0
add esp, 8
mov dword [esi + 0x374], eax
mov al, byte [esi + 0x18c]
mov byte [esi + 0x25c], al
mov byte [esi + 0x3ec], 0xe5
mov byte [esi + 0x3ed], 0x71
mov eax, 2
mov byte [esi + eax + 0x3ec], 0
add eax, 1
cmp eax, 5
jne 0x410ae7
xor eax, eax
cmp eax, 5
jae 0x410b67
movzx edx, byte [esi + eax + 0x3ec]
mov edi, eax
xor edi, 0x836664a6
mov ecx, eax
shl ecx, 1
and ecx, 0xf93336b2
sub ecx, edi
add ecx, 0xbea51dec
mov edi, ecx
shl edi, 1
and edi, 0x6ccc94c
xor ecx, 0x836664a6
add ecx, edi
mov edi, ecx
xor edi, edx
mov ebx, edi
shl ebx, 1
xor ebx, 0xffffffff
add edi, ebx
mov ebx, ecx
and ebx, edi
shl ebx, 1
sub ecx, ebx
add ecx, edx
add ecx, 0x46c66a63
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esi + eax + 0x3ec], cl
add eax, 1
jmp 0x410af9
mov eax, dword [esi + 8]
lea ecx, [esi + 0x3ec]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004019c0
add esp, 8
mov dword [esi + 0x378], eax
mov al, byte [esi + 0x188]
mov byte [esi + 0x260], al
mov byte [esi + 0x3e4], 6
mov byte [esi + 0x3e5], 0x89
mov eax, 2
mov byte [esi + eax + 0x3e4], 0
add eax, 1
cmp eax, 8
jne 0x410ba7
xor eax, eax
cmp eax, 8
jae 0x410bec
movzx edi, byte [esi + eax + 0x3e4]
mov ecx, 0x5d
sub ecx, eax
or ecx, edi
mov edx, 0x5d
sub edx, eax
and edx, edi
xor ecx, 0xffffffff
or edx, ecx
add dl, 0xd6
mov byte [esi + eax + 0x3e4], dl
add eax, 1
jmp 0x410bb9
mov eax, dword [esi + 8]
lea ecx, [esi + 0x3e4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018f0
add esp, 8
mov dword [esi + 0x37c], eax
mov al, byte [esi + 0x184]
mov byte [esi + 0x264], al
mov byte [esi + 0x3dc], 0x80
mov byte [esi + 0x3dd], 0x2b
mov eax, 2
mov byte [esi + eax + 0x3dc], 0
add eax, 1
cmp eax, 7
jne 0x410c2c
xor eax, eax
cmp eax, 7
jae 0x410c60
mov cl, byte [esi + eax + 0x3dc]
mov dl, al
add dl, 0x47
xor dl, cl
add dl, 0x9d
mov byte [esi + eax + 0x3dc], dl
add eax, 1
jmp 0x410c3e
mov eax, dword [esi + 8]
sub esp, 8
lea ecx, [esi + 0x3dc]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00401950
add esp, 8
fnstcw word [esi + 0x88]
movzx eax, word [esi + 0x88]
or eax, 0xc00
mov word [esi + 0x2c0], ax
fldcw word [esi + 0x2c0]
fistp dword [esi + 0x4b8]
fldcw word [esi + 0x88]
mov eax, dword [esi + 0x4b8]
mov dword [esi + 0x4c8], eax
mov al, byte [esi + 0x180]
mov byte [esi + 0x268], al
mov byte [esi + 0x2f0], 0xaa
mov byte [esi + 0x2f1], 0xda
mov byte [esi + 0x2f2], 0x46
mov eax, 3
mov byte [esi + eax + 0x2f0], 0
add eax, 1
cmp eax, 6
jne 0x410cd8
xor eax, eax
cmp eax, 6
jae 0x410d23
movzx edx, byte [esi + eax + 0x2f0]
mov ecx, eax
add ecx, 0xe254bf91
xor ecx, edx
mov edx, ecx
and edx, 0xd6
xor edx, 0xd6
and ecx, 0x29
sub ecx, edx
add cl, 1
mov byte [esi + eax + 0x2f0], cl
add eax, 1
jmp 0x410cea
mov eax, dword [esi + 8]
sub esp, 8
lea ecx, [esi + 0x2f0]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00401950
add esp, 8
fnstcw word [esi + 0x86]
movzx eax, word [esi + 0x86]
or eax, 0xc00
mov word [esi + 0x2be], ax
fldcw word [esi + 0x2be]
fistp dword [esi + 0x4b4]
fldcw word [esi + 0x86]
mov eax, dword [esi + 0x4b4]
mov dword [esi + 0x4cc], eax
sub esp, 4
mov eax, dword [esi + 0x324]
mov dword [esp], eax
call fcn.004173f0
add esp, 4
mov edi, eax
and edi, 1
or eax, 1
add edi, eax
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x410dab
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408590
add esp, 4
mov dword [esi + 0xd4], eax
mov eax, dword [esi + 0xd4]
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esi + 0x324]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040ab80
add esp, 0x10
mov eax, dword [esi + 0xd4]
lea ecx, [esi + 0x508]
sub esp, 4
mov dword [esp], eax
call fcn.00417460
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x61703707
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [edi]
mov dword [eax], 0xb83afa0b
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x8212801b
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [edi]
mov dword [eax], 0x6594cd66
jmp 0x41353d
mov dword [esi + 0x60], 0
mov eax, dword [esi + 0x508]
mov dword [esi + 0x484], eax
mov al, byte [esi + 0x26c]
mov byte [esi + 0x2bc], al
mov byte [esi + 0x44], 0xc5
mov byte [esi + 0x45], 0xc6
mov byte [esi + 0x46], 0xc7
mov byte [esi + 0x47], 0xc0
xor eax, eax
cmp eax, 4
jae 0x410ef7
mov cl, byte [esi + eax + 0x44]
mov dl, al
add dl, 0xb1
xor dl, cl
add dl, 0x8b
mov byte [esi + eax + 0x44], dl
add eax, 1
jmp 0x410edb
mov eax, dword [esi + 0x44]
mov dword [esi + 0xb4], eax
xor edi, edi
mov ecx, 2
cmp edi, dword [0x44cf3c]
jb 0x410f14
jmp 0x410f9e
mov edx, dword [0x44cf40]
cmp dword [edx + edi*8], 0xfc36c0a1
sete bh
xor ecx, ecx
mov bl, bh
test bh, 1
jne 0x410f2f
jmp 0x410f8f
mov edx, dword [edx + edi*8 + 4]
mov ecx, 2
cmp edx, dword [esi + 0xb4]
je 0x410f8f
mov eax, dword [0x44cf44]
xor ecx, ecx
lea ecx, [esi + 0x60]
sub esp, 0x20
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov eax, dword [esi + 0x484]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x2b
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
call fcn.0043df80
add esp, 0x20
mov ecx, 1
test bl, 1
je 0x410f96
jmp 0x410f9e
add edi, 1
jmp 0x410f02
cmp ecx, 2
je 0x410fa9
mov dword [esi + 0xb4], eax
mov al, byte [esi + 0x174]
mov byte [esi + 0x270], al
mov byte [esi + 0x178], 0x1c
mov byte [esi + 0x179], 0x19
mov byte [esi + 0x17a], 0x1e
mov byte [esi + 0x17b], 0xdf
mov eax, 4
mov byte [esi + eax + 0x178], 0
add eax, 1
cmp eax, 8
jne 0x410fd6
xor eax, eax
cmp eax, 8
jae 0x411033
movzx edi, byte [esi + eax + 0x178]
mov edx, 0xc035f445
sub edx, eax
or edx, edi
mov ebx, 0x45
sub ebx, eax
mov ecx, 0x45
sub ecx, eax
or ecx, ebx
and ecx, edi
xor edx, 0xffffffff
or ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0xba
xor ecx, 0x5d
add ecx, edx
add cl, 1
mov byte [esi + eax + 0x178], cl
add eax, 1
jmp 0x410fe8
mov ecx, dword [esi + 0x178]
mov eax, 0xa2d58514
cmp dword [esi + 0xb4], ecx
je 0x41104b
mov eax, 0x6ccfb58
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 4]
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x459b1778
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, 0x3c0241fc
test byte [esi + 0x2a], 1
jne 0x4111cd
mov eax, 0xe78c9e53
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0x98]
movzx ecx, word [eax]
mov eax, 0x4843c755
cmp ecx, 0x5c
je 0x4112ff
mov eax, 0x54461551
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 4]
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xd1fd7b2a
mov eax, dword [esi + 0x4d0]
mov dword [esi + 0x330], eax
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0xd8]
sub esp, 4
mov dword [esp], eax
call fcn.004085a0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x9e88c017
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0x4d4]
mov ecx, dword [esi + 0x58]
sub eax, ecx
sar eax, 1
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
add eax, eax
setb byte [esi + 0x4dc]
mov dword [esi + 0x4d8], eax
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xfe4ea0fa
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0x338]
mov dword [esi + 0xe4], eax
mov eax, dword [esi + 0x378]
sub esp, 4
mov dword [esp], eax
call fcn.00401be0
add esp, 4
mov ecx, 0xfc73cfc6
cmp dword [esi + 0xe4], eax
jb 0x4115dc
mov ecx, 0x4cba3754
mov eax, dword [edi]
mov dword [eax], ecx
jmp 0x41353d
mov eax, dword [esi + 0xec]
sub esp, 4
mov dword [esp], eax
call fcn.004085a0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xcb297ad6
mov ebx, dword [esi + 4]
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xd563a15d
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0xe0]
sub esp, 4
mov dword [esp], eax
call fcn.004085a0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0x2656e520
jmp 0x41353d
mov eax, dword [esi + 0xdc]
sub esp, 4
mov dword [esp], eax
call fcn.004085a0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0x18811172
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x6ccfb58
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0xf0]
sub esp, 4
mov dword [esp], eax
call fcn.004173f0
add esp, 4
mov dword [esi + 0x4e4], eax
mov eax, dword [edi]
mov dword [eax], 0x4cff8984
jmp 0x41353d
mov eax, dword [esi + 0x100]
sub esp, 4
mov dword [esp], eax
call fcn.004173f0
add esp, 4
mov edi, eax
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411cbf
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408590
add esp, 4
mov dword [esi + 0x388], eax
mov eax, dword [esi + 0x388]
mov ecx, dword [esi + 0x100]
xor edx, edx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.0040ab80
add esp, 0x10
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xd4b80f8a
mov eax, dword [esi + 0x388]
mov dword [esi + 0x33c], eax
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0x108]
sub esp, 4
mov dword [esp], eax
call fcn.004173f0
add esp, 4
mov edi, eax
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411e1c
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408590
add esp, 4
mov dword [esi + 0x38c], eax
mov eax, dword [esi + 0x38c]
mov ecx, dword [esi + 0x108]
xor edx, edx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
call fcn.0040ab80
add esp, 0x10
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x18365822
mov eax, dword [esi + 0x38c]
mov dword [esi + 0x340], eax
jmp 0x41353d
mov eax, dword [esi + 0x4f4]
mov ecx, dword [esi + 0xa4]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401a20
add esp, 8
xor edx, edx
cmp eax, 0
setg dl
mov eax, dword [esi + 0xa0]
imul ecx, eax, 0xc
add ecx, dword [esi + 0x9c]
mov al, byte [esi + 0x2b]
mov edi, dword [esi + 0x4f0]
mov ebx, dword [esi + 0x4ec]
sub esp, 0x10
mov dword [esp + 4], ebx
mov ebx, dword [esi + 4]
mov dword [esp], edi
mov edi, dword [esi]
and edx, 1
mov dword [esp + 0xc], edx
movzx eax, al
and eax, 1
mov dword [esp + 8], eax
call fcn.00417580
mov eax, dword [esi + 0xa0]
sub eax, 0xffffffff
mov dword [esi + 0x4f8], eax
mov eax, dword [edi]
mov dword [eax], 0x78426460
mov eax, dword [esi + 0x4f8]
mov dword [esi + 0x348], eax
jmp 0x41353d
mov eax, dword [edi]
mov dword [eax], 0x36a6199a
jmp 0x41353d
mov eax, dword [esi + 0x354]
add eax, 0xfffffff4
mov dword [esi + 0x114], eax
mov ecx, dword [esi + 0x114]
call fcn.004176f0
mov ecx, dword [esi + 0x114]
mov eax, 0xfe4373dd
cmp ecx, dword [esi + 0x38]
je 0x4125cf
mov eax, 0xaefd2347
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [esi + 0x114]
mov dword [esi + 0x354], eax
mov ebx, dword [esi + 4]
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xeb4bc93c
mov ebx, dword [esi + 4]
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xd192d9e9
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, 0x28610500
cmp dword [esi + 0x104], 0
je 0x4126a4
mov eax, 0xfae3c8da
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 4]
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x599188ed
mov ebx, dword [esi + 4]
jmp 0x41353d
mov al, byte [esi + 0x13c]
mov byte [esi + 0x2a0], al
mov byte [esi + 0x3b4], 0xb0
mov byte [esi + 0x3b5], 0x21
mov eax, 2
mov byte [esi + eax + 0x3b4], 0
add eax, 1
cmp eax, 5
jne 0x41279d
xor eax, eax
cmp eax, 5
jae 0x4127e9
movzx edx, byte [esi + eax + 0x3b4]
mov edi, eax
shl edi, 1
and edi, 0x7adaef70
mov ecx, eax
xor ecx, 0xbd6d77b8
add ecx, edi
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0x68
mov byte [esi + eax + 0x3b4], cl
add eax, 1
jmp 0x4127af
mov eax, dword [esi + 8]
lea ecx, [esi + 0x3b4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018f0
add esp, 8
mov dword [esi + 0x118], eax
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xe193d764
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0x120]
sub esp, 4
mov dword [esp], eax
call fcn.00401be0
add esp, 4
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x3c]
mov ecx, 8
mul ecx
seto dl
add eax, 4
setb cl
or dl, cl
mov ecx, 0xffffffff
test dl, 1
jne 0x412ad5
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408590
add esp, 4
mov ecx, dword [esi + 0x3c]
mov dword [eax], ecx
add eax, 4
mov dword [esi + 0xac], eax
mov eax, 0x6d0c4cd1
cmp dword [esi + 0x3c], 0
je 0x412b01
mov eax, 0x5040014c
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0x35c]
mov dword [esi + 0xb0], eax
mov ecx, dword [esi + 0xb0]
mov eax, 0x7a493fab
cmp ecx, dword [esi + 0x3c]
jb 0x412c06
mov eax, 0x4dca7d5a
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 4]
jmp 0x41353d
lea ecx, [esi + 0x528]
sub esp, 4
mov dword [esp], 3
call fcn.004091d0
mov eax, dword [esi + 0x3a0]
mov ecx, dword [esi + 0x14]
mov edx, dword [esi + 0xa8]
mov edi, dword [esi + 0x5c]
lea ebx, [esi + 0x528]
sub esp, 0x14
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], edx
mov dword [esp + 0xc], ecx
mov dword [esp + 0x10], eax
call fcn.0041fd90
add esp, 0x14
lea ecx, [esi + 0x528]
call fcn.00409be0
cmp dword [esi + 0x14], 0
sete al
and al, 1
mov byte [esi + 0x2f], al
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xffbfd57b
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0x3a4]
sub esp, 4
mov dword [esp], eax
call fcn.004085a0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xbd86d950
mov ebx, dword [esi + 4]
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x7ce70983
mov ebx, dword [esi + 4]
jmp 0x41353d
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xc48ed1a4
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0x5c]
sub esp, 4
mov dword [esp], eax
call fcn.004085a0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xde149c24
mov ebx, dword [esi + 4]
jmp 0x41353d
mov eax, dword [esi + 0xa8]
sub esp, 4
mov dword [esp], eax
call fcn.004085a0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xd37285be
mov ebx, dword [esi + 4]
jmp 0x41353d
mov al, byte [esi + 0x13]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov al, byte [esi + 0x20]
mov byte [esi + 0x200], al
mov byte [esi + 0xc], 0x9d
mov byte [esi + 0xd], 0x91
mov byte [esi + 0xe], 0x92
mov byte [esi + 0xf], 0x93
xor eax, eax
cmp eax, 4
jae 0x413112
movzx edx, byte [esi + eax + 0xc]
mov ecx, eax
add ecx, 0xae649f24
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0x4c
mov byte [esi + eax + 0xc], cl
add eax, 1
jmp 0x4130ea
mov eax, dword [esi + 0xc]
mov dword [esi + 0x490], eax
mov al, byte [esi + 0x1c]
mov byte [esi + 0x208], al
mov byte [esi + 0x78], 0x97
mov byte [esi + 0x79], 0x7b
mov eax, 2
mov byte [esi + eax + 0x78], 0
add eax, 1
cmp eax, 7
jne 0x413131
xor ecx, ecx
cmp ecx, 7
jae 0x413192
movzx ebx, byte [esi + ecx + 0x78]
mov edi, ecx
add edi, 0x2c6e7bf
mov edx, 0x40
sub edx, ecx
mov eax, ebx
add eax, 1
mov dword [esi + 0x460], eax
mov eax, ebx
xor eax, 0xffffffff
or edx, eax
add edx, dword [esi + 0x460]
xor ebx, 0xffffffff
and edi, ebx
or edx, edi
mov eax, edx
xor eax, 0xdc
shl edx, 1
and edx, 0x46
sub edx, eax
add dl, 0x21
mov byte [esi + ecx + 0x78], dl
add ecx, 1
jmp 0x413140
mov eax, dword [esi + 8]
lea ecx, [esi + 0x78]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov eax, dword [esi + 0x490]
mov dword [esp + 8], eax
call fcn.00401b80
add esp, 0xc
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xaf608e1b
mov ebx, dword [esi + 4]
jmp 0x41353d
mov ebp, 0xaf53c709
sbb byte [edx + edx*8 - 0x6f], cl
push ecx
stc
out dx, eax
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x8401fac1
mov ebx, dword [esi + 4]
jmp 0x41353d
leave
xlatb
ljmp 0x241b
mov eax, 2
cmp edi, dword [0x44cf3c]
jb 0x41333a
jmp 0x4133c9
mov ecx, dword [0x44cf40]
cmp dword [ecx + edi*8], 0xfc36c0a1
sete dl
xor eax, eax
mov bl, dl
test dl, 1
jne 0x413355
jmp 0x4133ba
mov ecx, dword [ecx + edi*8 + 4]
mov eax, 2
cmp ecx, dword [esi + 0x48c]
je 0x4133ba
mov eax, dword [0x44cf44]
xor edx, edx
sub esp, 0x20
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x14
mov eax, dword [esi + 0x49c]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x2b
mov eax, dword [esi + 0x4a4]
mov dword [esp + 0x14], eax
mov eax, dword [esi + 0x47c]
jl 0x4133a3
add byte [eax], al
mov dword [esp + 0x18], eax
and al, 0x18
mov dword [esp + 0x1c], 0
call fcn.0043df80
add esp, 0x20
mov eax, 1
test bl, 1
je 0x4133c1
jmp 0x4133c9
add edi, 1
jmp 0x413328
cmp eax, 2
jne 0x4133ce
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x459b1778
mov ebx, dword [esi + 4]
jmp 0x41353d
fadd dword [ebx + ecx*2]
loopne 0x41339d
fiadd dword [ecx]
xor al, 0xca
or ecx, ebp
mov byte [esi + 0x27], 0x81
cmpsb byte [esi], byte es:[edi]
push ds
fsubr qword [ecx + 0x75]
mov eax, dword [esi + 0x54]
sub esp, 4
mov dword [esp], eax
call fcn.0043b400
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xeddcfc5
mov ebx, dword [esi + 4]
jmp 0x41353d
fsubr dword [edi + 0x7e5da241]
xchg dword [esp + esi*4 + 0x3b], esi
aad 0xc1
sub bl, byte [ebx]
sub esp, dword [edi]
mov eax, dword [edi]
mov dword [eax], 0x6d35389c
jmp 0x41353d
jmp 0x40e6e5