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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x738
mov esi, esp
mov al, byte [esi + 0x210]
mov byte [esi + 0x214], al
mov byte [esi + 0x454], 0x23
mov byte [esi + 0x455], 0x81
mov eax, 2
mov byte [esi + eax + 0x454], 0
add eax, 1
cmp eax, 6
jne 0x40ed10
xor eax, eax
cmp eax, 6
jae 0x40ed8f
movzx edx, byte [esi + eax + 0x454]
mov ecx, eax
add ecx, 0x60
mov edi, edx
add edi, 1
mov ebx, edx
xor ebx, 0xffffffff
or ecx, ebx
add ecx, edi
mov ebx, ecx
and ebx, 0xfffffffd
mov edi, ecx
and edi, 2
xor edi, 2
imul edi, ebx
mov ebx, ecx
and ebx, 2
or ecx, 2
imul ecx, ebx
add ecx, edi
mov edi, eax
add edi, 0x905b360
add edi, edx
sub edi, ecx
mov ecx, edi
shl ecx, 1
and ecx, 0x3e
xor edi, 0xe0
sub ecx, edi
mov byte [esi + eax + 0x454], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x40ed22
sub esp, 8
lea eax, [esi + 0x454]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401980
add esp, 8
mov dword [esi + 0x110], eax
push eax
mov ebx, esp
push eax
mov edi, esp
mov dword [ebx], 0xf74bfaa7
mov dword [edi], ebx
mov dword [esi + 4], ebx
mov dword [esi], edi
mov eax, dword [ebx]
mov ecx, eax
sub ecx, 0x829f136b
je 0x40faed
jmp 0x40edd5
mov ecx, eax
sub ecx, 0x833b8aec
je 0x411679
jmp 0x40ede5
mov ecx, eax
sub ecx, 0x846b5296
je 0x413018
jmp 0x40edf5
mov ecx, eax
sub ecx, 0x853deb78
je 0x412f14
jmp 0x40ee05
mov ecx, eax
sub ecx, 0x8694bdb1
je 0x412f7a
jmp 0x40ee15
mov ecx, eax
sub ecx, 0x8781353a
je 0x40fb1a
jmp 0x40ee25
mov ecx, eax
sub ecx, 0x89370e10
je 0x411098
jmp 0x40ee35
mov ecx, eax
sub ecx, 0x89b540b9
je 0x410d51
jmp 0x40ee45
mov ecx, eax
sub ecx, 0x8c753f6f
je 0x413042
jmp 0x40ee55
mov ecx, eax
sub ecx, 0x8e0ecc1b
je 0x413829
jmp 0x40ee65
mov ecx, eax
sub ecx, 0x8e4102c7
je 0x412730
jmp 0x40ee75
mov ecx, eax
sub ecx, 0x8eccaefe
je 0x4102ec
jmp 0x40ee85
mov ecx, eax
sub ecx, 0x8ff3b380
je 0x410cc0
jmp 0x40ee95
mov ecx, eax
sub ecx, 0x9002732a
je 0x413671
jmp 0x40eea5
mov ecx, eax
sub ecx, 0x9009a511
je 0x411c53
jmp 0x40eeb5
mov ecx, eax
sub ecx, 0x92964232
je 0x412e97
jmp 0x40eec5
mov ecx, eax
sub ecx, 0x935f36bd
je 0x410862
jmp 0x40eed5
mov ecx, eax
sub ecx, 0x93a92ef6
je 0x412888
jmp 0x40eee5
mov ecx, eax
sub ecx, 0x963c2b77
je 0x41094a
jmp 0x40eef5
mov ecx, eax
sub ecx, 0x96ca7952
je 0x411e14
jmp 0x40ef05
mov ecx, eax
sub ecx, 0x9710d1ed
je 0x411bd7
jmp 0x40ef15
mov ecx, eax
sub ecx, 0x981a7af1
je 0x41086f
jmp 0x40ef25
mov ecx, eax
sub ecx, 0x98def4d6
je 0x41218d
jmp 0x40ef35
mov ecx, eax
sub ecx, 0x9bf7b2b1
je 0x413490
jmp 0x40ef45
mov ecx, eax
sub ecx, 0x9c0865da
je 0x41098c
jmp 0x40ef55
mov ecx, eax
sub ecx, 0x9c54446c
je 0x41103b
jmp 0x40ef65
mov ecx, eax
sub ecx, 0x9c9404c7
je 0x413f3e
jmp 0x40ef75
mov ecx, eax
sub ecx, 0x9e8d1480
je 0x410e96
jmp 0x40ef85
mov ecx, eax
sub ecx, 0x9ffd3b57
je 0x410c1b
jmp 0x40ef95
mov ecx, eax
sub ecx, 0xa30c1c50
je 0x412989
jmp 0x40efa5
mov ecx, eax
sub ecx, 0xa35c858e
je 0x4121e6
jmp 0x40efb5
mov ecx, eax
sub ecx, 0xa50adfb5
je 0x411b91
jmp 0x40efc5
mov ecx, eax
sub ecx, 0xa583f98d
je 0x4140af
jmp 0x40efd5
mov ecx, eax
sub ecx, 0xa6e54bfe
je 0x413e39
jmp 0x40efe5
mov ecx, eax
sub ecx, 0xad0f98ce
je 0x4134e1
jmp 0x40eff5
mov ecx, eax
sub ecx, 0xad134cbf
je 0x413879
jmp 0x40f005
mov ecx, eax
sub ecx, 0xaf12bd2a
je 0x411bfc
jmp 0x40f015
mov ecx, eax
sub ecx, 0xaf8c9fa6
je 0x4138be
jmp 0x40f025
mov ecx, eax
sub ecx, 0xaff18599
je 0x413517
jmp 0x40f035
mov ecx, eax
sub ecx, 0xb46d5d30
je 0x414094
jmp 0x40f045
mov ecx, eax
sub ecx, 0xb739ec95
je 0x412232
jmp 0x40f055
mov ecx, eax
sub ecx, 0xb95f66d4
je 0x4131cc
jmp 0x40f065
mov ecx, eax
sub ecx, 0xbf4fc42a
je 0x4111fd
jmp 0x40f075
mov ecx, eax
sub ecx, 0xc13af536
je 0x411e7f
jmp 0x40f085
mov ecx, eax
sub ecx, 0xc18d6b7b
je 0x40fb55
jmp 0x40f095
mov ecx, eax
sub ecx, 0xc1c5cc00
je 0x41371d
jmp 0x40f0a5
mov ecx, eax
sub ecx, 0xc1e1175b
je 0x40fdb2
jmp 0x40f0b5
mov ecx, eax
sub ecx, 0xc3bdff0f
je 0x412f33
jmp 0x40f0c5
mov ecx, eax
sub ecx, 0xc3d61259
je 0x41385c
jmp 0x40f0d5
mov ecx, eax
sub ecx, 0xc6cc0583
je 0x411f2e
jmp 0x40f0e5
mov ecx, eax
sub ecx, 0xc75de112
je 0x41342c
jmp 0x40f0f5
mov ecx, eax
sub ecx, 0xc75e0528
je 0x411baf
jmp 0x40f105
mov ecx, eax
sub ecx, 0xc7e6f257
je 0x411f9f
jmp 0x40f115
mov ecx, eax
sub ecx, 0xcb8b5ddc
je 0x4137a7
jmp 0x40f125
mov ecx, eax
sub ecx, 0xcc45a3d5
je 0x411125
jmp 0x40f135
mov ecx, eax
sub ecx, 0xd3c7366e
je 0x410c64
jmp 0x40f145
mov ecx, eax
sub ecx, 0xd5884c09
je 0x410d29
jmp 0x40f155
mov ecx, eax
sub ecx, 0xd5fb7de2
je 0x413de5
jmp 0x40f165
mov ecx, eax
sub ecx, 0xd69d7859
je 0x4137df
jmp 0x40f175
mov ecx, eax
sub ecx, 0xd7cb5177
je 0x40fdd3
jmp 0x40f185
mov ecx, eax
sub ecx, 0xd984c6a3
je 0x4133fa
jmp 0x40f195
mov ecx, eax
sub ecx, 0xd9b70bd7
je 0x412001
jmp 0x40f1a5
mov ecx, eax
sub ecx, 0xdac4cf3f
je 0x413f18
jmp 0x40f1b5
mov ecx, eax
sub ecx, 0xdaf173a2
je 0x410a9e
mov eax, dword [edi]
mov dword [eax], 0x4a5f890c
mov byte [esi + 0x13], 0
jmp 0x414102
mov eax, dword [esi + 0x34c]
mov dword [esi + 0x114], eax
mov eax, dword [esi + 0x110]
sub esp, 4
mov dword [esp], eax
call fcn.00401ba0
add esp, 4
mov ecx, 0x4414550d
cmp dword [esi + 0x114], eax
jb 0x40fb4c
mov ecx, 0xc18d6b7b
mov eax, dword [edi]
mov dword [eax], ecx
jmp 0x414102
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x4a5f890c
mov byte [esi + 0x13], 1
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, 0x45821875
cmp dword [esi + 0x88], 3
jl 0x40fdc5
mov eax, 0xd7cb5177
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, 0x4b0187b7
cmp dword [esi + 0x88], 3
je 0x40fde6
mov eax, 0x6f8fe21e
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [edi]
mov dword [eax], 0xc032c5c
jmp 0x414102
mov eax, dword [edi]
mov dword [eax], 0x981a7af1
jmp 0x414102
mov eax, dword [esi + 0x50]
sub esp, 4
mov dword [esp], eax
call fcn.004083f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0x523491f1
jmp 0x414102
mov eax, dword [esi + 0x50]
sub esp, 4
mov dword [esp], eax
call fcn.004083f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0x87a9ae4
jmp 0x414102
mov eax, dword [esi + 0x50]
sub esp, 4
mov dword [esp], eax
call fcn.004083f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0xde787c00
jmp 0x414102
mov eax, dword [esi + 0x11c]
add eax, 0xcc96d3aa
add eax, 1
sub eax, 0xcc96d3aa
mov dword [esi + 0x4c4], eax
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x612b96fe
mov eax, dword [esi + 0x4c4]
mov dword [esi + 0x350], eax
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0xd4]
sub esp, 4
mov dword [esp], eax
call fcn.004083f0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x62817860
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0xd0]
sub esp, 4
mov dword [esp], eax
call fcn.004083f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0x7bff5d88
jmp 0x414102
lea ecx, [esi + 0x6a8]
call fcn.00409ac0
lea ecx, [esi + 0x6a8]
call fcn.004090c0
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x89b540b9
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [edi]
mov dword [eax], 0x9b48f23
jmp 0x414102
mov al, byte [esi + 0x1dc]
mov byte [esi + 0x278], al
mov byte [esi + 0x41c], 3
mov byte [esi + 0x41d], 0x9f
mov eax, 2
mov byte [esi + eax + 0x41c], 0
add eax, 1
cmp eax, 7
jne 0x410eb5
xor eax, eax
cmp eax, 7
jae 0x410f13
mov dl, byte [esi + eax + 0x41c]
mov ecx, eax
add ecx, 0xe79c8597
mov edi, ecx
xor edi, 0x72
shl ecx, 1
and ecx, 0x1a
sub ecx, edi
xor cl, dl
add cl, 0x47
mov byte [esi + eax + 0x41c], cl
mov ecx, eax
xor ecx, 0xffffffff
or ecx, 1
mov edx, eax
and edx, 1
xor edx, 0xffffffff
mov edi, eax
add edi, 2
add edi, edx
add eax, ecx
add eax, 1
add eax, edi
jmp 0x410ec7
mov eax, dword [esi + 8]
lea ecx, [esi + 0x41c]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 5
call fcn.00401b40
add esp, 0xc
mov ecx, 0x75006240
cmp eax, 0
jne 0x410f45
mov ecx, 0x4b03d206
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], ecx
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [edi]
mov dword [eax], 0x63d50586
jmp 0x414102
xor eax, eax
jmp 0x41109c
cmp eax, 8
jae 0x4110ea
movzx ecx, byte [esi + eax + 0x104]
mov edi, eax
add edi, 0x20725e26
xor edi, ecx
mov edx, edi
add edx, 0x5dc42941
mov ecx, edx
shl ecx, 1
and ecx, 2
mov ebx, 0x1e
sub ebx, edi
mov edi, dword [esi]
and ebx, 0x1f
and edx, 0xe0
or ebx, edx
xor ebx, 0x1e
add ebx, ecx
mov byte [esi + eax + 0x104], bl
mov ebx, dword [esi + 4]
add eax, 1
jmp 0x41109c
mov eax, dword [esi + 8]
lea ecx, [esi + 0x104]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call fcn.00401b40
add esp, 0xc
mov ecx, 0xcc45a3d5
cmp eax, 0
jne 0x41111c
mov ecx, 0x4b03d206
mov eax, dword [edi]
mov dword [eax], ecx
jmp 0x414102
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xe0203f5f
mov ebx, dword [esi + 4]
jmp 0x414102
mov al, byte [esi + 0x1d4]
mov byte [esi + 0x290], al
mov byte [esi + 0x40c], 5
mov byte [esi + 0x40d], 0x9f
mov eax, 2
mov byte [esi + eax + 0x40c], 0
add eax, 1
cmp eax, 5
jne 0x41121c
xor eax, eax
cmp eax, 5
jae 0x411265
mov dl, byte [esi + eax + 0x40c]
mov edi, eax
add edi, 5
mov ecx, 0xda
sub ecx, eax
and ecx, 0xfb
and edi, 4
or ecx, edi
xor cl, dl
xor cl, 0xfb
add cl, 0x47
mov byte [esi + eax + 0x40c], cl
add eax, 1
jmp 0x41122e
mov eax, dword [esi + 8]
lea ecx, [esi + 0x40c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018b0
add esp, 8
mov dword [esi + 0x344], eax
mov al, byte [esi + 0x1d0]
mov byte [esi + 0x294], al
mov byte [esi + 0x404], 0x80
mov byte [esi + 0x405], 0x11
mov eax, 2
mov byte [esi + eax + 0x404], 0
add eax, 1
cmp eax, 8
jne 0x4112a5
xor eax, eax
cmp eax, 8
jae 0x4112ea
movzx edx, byte [esi + eax + 0x404]
mov ecx, eax
add ecx, 4
or ecx, edx
mov edi, eax
add edi, 4
mov ebx, eax
add ebx, 4
or edi, ebx
and edi, edx
sub ecx, edi
add cl, 0xec
mov byte [esi + eax + 0x404], cl
add eax, 1
jmp 0x4112b7
mov eax, dword [esi + 8]
lea ecx, [esi + 0x404]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018b0
add esp, 8
mov dword [esi + 0x398], eax
mov al, byte [esi + 0x1cc]
mov byte [esi + 0x298], al
mov byte [esi + 0x9c], 3
mov byte [esi + 0x9d], 0x9f
mov eax, 2
mov byte [esi + eax + 0x9c], 0
add eax, 1
cmp eax, 4
jne 0x41132a
xor eax, eax
cmp eax, 4
jae 0x41139b
mov cl, byte [esi + eax + 0x9c]
mov byte [esi + 0x3d], cl
movzx edi, cl
mov ecx, eax
add ecx, 0x7b6b5125
mov ebx, ecx
xor ebx, edi
mov edi, ebx
shl edi, 1
xor edi, 0xffffffff
add ebx, edi
mov edi, ecx
and edi, ebx
mov edx, edi
and edx, 2
xor edx, 2
mov ebx, edi
and ebx, 0xfd
imul ebx, edx
mov edx, edi
and edx, 2
or edi, 2
imul edi, edx
add edi, ebx
sub ecx, edi
add cl, byte [esi + 0x3d]
add cl, 0x47
mov byte [esi + eax + 0x9c], cl
add eax, 1
jmp 0x41133c
mov eax, dword [esi + 8]
lea ecx, [esi + 0x9c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401980
add esp, 8
mov dword [esi + 0x39c], eax
mov al, byte [esi + 0x1c8]
mov byte [esi + 0x29c], al
mov byte [esi + 0x98], 0xaa
mov byte [esi + 0x99], 0x21
mov eax, 2
mov byte [esi + eax + 0x98], 0
add eax, 1
cmp eax, 4
jne 0x4113db
xor eax, eax
cmp eax, 4
jae 0x41143a
movzx edi, byte [esi + eax + 0x98]
mov edx, eax
add edx, 0xe71cc378
mov ecx, 0x18e33c87
sub ecx, eax
and ecx, 0xa9f80033
mov ebx, edx
and ebx, 0x5607ffcc
or ecx, ebx
xor ecx, edi
xor ecx, 0x33
mov ebx, eax
add ebx, 0x78
and ebx, edi
or ecx, ebx
and edx, edi
sub ecx, edx
add cl, 0xa8
mov byte [esi + eax + 0x98], cl
add eax, 1
jmp 0x4113ed
mov eax, dword [esi + 8]
lea ecx, [esi + 0x98]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018b0
add esp, 8
mov dword [esi + 0x3a0], eax
mov al, byte [esi + 0x1c4]
mov byte [esi + 0x2a0], al
mov byte [esi + 0x3fc], 0x7c
mov byte [esi + 0x3fd], 0x11
mov eax, 2
mov byte [esi + eax + 0x3fc], 0
add eax, 1
cmp eax, 7
jne 0x41147a
xor eax, eax
cmp eax, 7
jae 0x4114ba
movzx edx, byte [esi + eax + 0x3fc]
mov ecx, eax
add ecx, 0xcef42684
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
add cl, 0x6c
mov byte [esi + eax + 0x3fc], cl
add eax, 1
jmp 0x41148c
mov eax, dword [esi + 8]
sub esp, 8
lea ecx, [esi + 0x3fc]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00401910
add esp, 8
fnstcw word [esi + 0xc4]
movzx eax, word [esi + 0xc4]
or eax, 0xc00
mov word [esi + 0x304], ax
fldcw word [esi + 0x304]
fistp dword [esi + 0x4b8]
fldcw word [esi + 0xc4]
mov eax, dword [esi + 0x4b8]
mov dword [esi + 0x4c8], eax
mov al, byte [esi + 0x1c0]
mov byte [esi + 0x2a4], al
mov byte [esi + 0x32c], 0x82
mov byte [esi + 0x32d], 0x96
mov byte [esi + 0x32e], 0x16
mov eax, 3
mov byte [esi + eax + 0x32c], 0
add eax, 1
cmp eax, 5
jne 0x411532
xor eax, eax
cmp eax, 5
jae 0x41158d
movzx edx, byte [esi + eax + 0x32c]
mov edi, eax
and edi, 0xa941d5fa
xor edi, 0xa941d5fa
mov ecx, eax
and ecx, 0x56be2a05
sub ecx, edi
xor ecx, edx
mov edx, ecx
or edx, 0xe0
add edx, 1
and ecx, 0xe0
or ecx, 1
add edx, ecx
mov byte [esi + eax + 0x32c], dl
add eax, 1
jmp 0x411544
mov eax, dword [esi + 8]
sub esp, 8
lea ecx, [esi + 0x32c]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.00401910
add esp, 8
fnstcw word [esi + 0xc2]
movzx eax, word [esi + 0xc2]
or eax, 0xc00
mov word [esi + 0x302], ax
fldcw word [esi + 0x302]
fistp dword [esi + 0x4b4]
fldcw word [esi + 0xc2]
mov eax, dword [esi + 0x4b4]
mov dword [esi + 0x4cc], eax
sub esp, 4
mov eax, dword [esi + 0x344]
mov dword [esp], eax
call fcn.004185c0
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 0x411610
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004083e0
add esp, 4
mov dword [esi + 0x128], eax
mov eax, dword [esi + 0x128]
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esi + 0x344]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040aa30
add esp, 0x10
mov eax, dword [esi + 0x128]
lea ecx, [esi + 0x500]
sub esp, 4
mov dword [esp], eax
call fcn.00418640
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x833b8aec
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0x128]
sub esp, 4
mov dword [esp], eax
call fcn.004083f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0x4e26733
jmp 0x414102
mov eax, dword [esi + 0x354]
mov dword [esi + 0xdc], eax
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xc75e0528
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0xd8]
mov eax, dword [eax]
cmp dword [esi + 0xdc], eax
setae al
and al, 1
mov byte [esi + 0x44], al
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x9710d1ed
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, 0xaf12bd2a
test byte [esi + 0x44], 1
jne 0x411be7
mov eax, 0xddbcd662
mov ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [esi + 0x3a8]
mov dword [esi + 0x358], eax
jmp 0x414102
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x27305232
mov ebx, dword [esi + 4]
jmp 0x414102
cmp dword [esi + 0x4d0], 0x5c
sete al
and al, 1
mov byte [esi + 0x45], al
mov eax, dword [edi]
mov dword [eax], 0x30c900b1
jmp 0x414102
mov eax, dword [esi + 0x4dc]
sub esp, 4
mov dword [esp], eax
call fcn.004083e0
add esp, 4
mov dword [esi + 0x130], eax
mov eax, dword [esi + 0x130]
mov ecx, dword [esi + 0xe0]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0043a290
add esp, 8
mov eax, dword [edi]
mov dword [eax], 0xf1d7f30
jmp 0x414102
mov eax, dword [esi + 0x3a0]
sub esp, 4
mov dword [esp], eax
call fcn.004185c0
add esp, 4
add eax, 1
mov dword [esi + 0x3ac], eax
mov eax, dword [esi + 0x3ac]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411eb8
mov ecx, eax
mov dword [esi + 0x4e0], ecx
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x519087d5
mov ebx, dword [esi + 4]
jmp 0x414102
lea ecx, [esi + 0x620]
sub esp, 4
mov dword [esp], 1
call fcn.00408fe0
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x17bb409d
mov dword [esi + 0x35c], 0
mov ebx, dword [esi + 4]
jmp 0x414102
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x98def4d6
mov ebx, dword [esi + 4]
jmp 0x414102
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x49091c7a
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0x134]
sub esp, 4
mov dword [esp], eax
call fcn.004083f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0xeb8530f1
jmp 0x414102
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x19d8295a
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0x8c]
sub esp, 4
mov dword [esp], eax
call fcn.0043bda0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x616a108
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0x150]
sub esp, 4
mov dword [esp], eax
call fcn.004185c0
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 0x412761
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004083e0
add esp, 4
mov dword [esi + 0x3b4], eax
mov eax, dword [esi + 0x3b4]
mov ecx, dword [esi + 0x150]
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.0040aa30
add esp, 0x10
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x6396bfa9
mov eax, dword [esi + 0x3b4]
mov dword [esi + 0x364], eax
jmp 0x414102
mov eax, dword [esi + 0x154]
sub esp, 4
mov dword [esp], eax
call fcn.00401ba0
add esp, 4
mov dword [esi + 0x54], eax
mov eax, dword [esi + 0x54]
mov ecx, 0xc
mul ecx
seto dl
add eax, 4
setb cl
or dl, cl
mov ecx, 0xffffffff
test dl, 1
jne 0x4128c0
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004083e0
add esp, 4
mov ecx, dword [esi + 0x54]
mov dword [eax], ecx
add eax, 4
mov dword [esi + 0xf0], eax
mov eax, 0x6ca5750e
cmp dword [esi + 0x54], 0
je 0x4128ec
mov eax, 0xf7e0878c
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x414102
mov eax, dword [esi + 0x36c]
mov dword [esi + 0xf4], eax
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x51915c4d
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0x158]
sub esp, 4
mov dword [esp], eax
call fcn.004083f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0x67d6b2ff
jmp 0x414102
mov eax, dword [edi]
mov dword [eax], 0xf3e0971e
jmp 0x414102
mov eax, dword [esi + 0xe4]
sub esp, 4
mov dword [esp], eax
call fcn.004083f0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x1836a8f4
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0xec]
sub esp, 4
mov dword [esp], eax
call fcn.004083f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0x45fe2842
jmp 0x414102
lea ecx, [esi + 0x510]
call fcn.004090c0
mov eax, dword [edi]
mov dword [eax], 0x3064265c
jmp 0x414102
mov eax, dword [edi]
mov dword [eax], 0x6f8fe21e
jmp 0x414102
mov eax, dword [esi + 0x160]
sub esp, 4
mov dword [esp], eax
call fcn.004185c0
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 0x4131fd
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004083e0
add esp, 4
mov dword [esi + 0x168], eax
mov eax, dword [esi + 0x168]
mov ecx, dword [esi + 0x160]
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.0040aa30
add esp, 0x10
mov eax, dword [esi + 0x164]
sub esp, 4
mov dword [esp], eax
call fcn.004185c0
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 0x413273
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.004083e0
add esp, 4
mov dword [esi + 0x16c], eax
mov eax, dword [esi + 0x16c]
mov ecx, dword [esi + 0x164]
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.0040aa30
add esp, 0x10
mov al, byte [esi + 0x180]
mov byte [esi + 0x2f0], al
mov byte [esi + 0x314], 0xbd
mov byte [esi + 0x315], 0xb1
mov byte [esi + 0x316], 0x56
mov eax, 3
mov byte [esi + eax + 0x314], 0
add eax, 1
cmp eax, 6
jne 0x4132d9
xor eax, eax
cmp eax, 6
jae 0x413320
mov dl, byte [esi + eax + 0x314]
mov edi, eax
shl edi, 1
and edi, 0x1c
mov ecx, eax
xor ecx, 0x71
sub ecx, edi
xor cl, dl
mov dl, 0x39
sub dl, cl
mov byte [esi + eax + 0x314], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x4132eb
lea eax, [esi + 0x314]
sub esp, 8
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401980
add esp, 8
mov dword [esi + 0x170], eax
mov eax, 0x91af220
cmp dword [esi + 0x170], 0
jne 0x413354
mov eax, 0x9002732a
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov dword [esi + 0x388], 0
mov dword [esi + 0x384], 0
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0xf8]
mov ecx, dword [esi + 0x58]
shl ecx, 3
add eax, ecx
mov dword [esi + 0x4f0], eax
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xc75de112
mov eax, dword [esi + 0xf8]
mov dword [esi + 0x37c], eax
mov ebx, dword [esi + 4]
jmp 0x414102
mov edi, dword [esi + 0x37c]
mov ecx, edi
call fcn.004188c0
add edi, 8
mov dword [esi + 0x3c4], edi
mov ecx, dword [esi + 0x3c4]
mov eax, 0x15098a2f
cmp ecx, dword [esi + 0x4f0]
je 0x41345a
mov eax, 0xc75de112
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [esi + 0x3c4]
mov dword [esi + 0x37c], eax
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0x380]
mov dword [esi + 0xfc], eax
mov ecx, dword [esi + 0xfc]
mov eax, 0xad0f98ce
cmp ecx, dword [esi + 0x58]
jb 0x4134b1
mov eax, 0xe2069a73
mov ecx, dword [edi]
mov dword [ecx], eax
jmp 0x414102
mov eax, dword [esi + 0xfc]
mov ecx, dword [esi + 0x170]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401bb0
add esp, 8
mov dword [esi + 0x3c8], eax
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xaff18599
mov ebx, dword [esi + 4]
jmp 0x414102
mov al, byte [esi + 0x17c]
mov byte [esi + 0x2f4], al
mov byte [esi + 0x60], 0x3b
mov byte [esi + 0x61], 1
mov byte [esi + 0x62], 0x9e
mov eax, 3
mov byte [esi + eax + 0x60], 0
add eax, 1
cmp eax, 4
jne 0x413534
xor eax, eax
cmp eax, 4
jae 0x413570
movzx edi, byte [esi + eax + 0x60]
mov ecx, 0x1a
sub ecx, eax
or ecx, edi
mov edx, 0x1a
sub edx, eax
and edx, edi
xor ecx, 0xffffffff
or edx, ecx
add dl, 0x87
mov byte [esi + eax + 0x60], dl
add eax, 1
jmp 0x413543
mov eax, dword [esi + 0x3c8]
lea ecx, [esi + 0x60]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018b0
add esp, 8
mov edi, eax
mov al, byte [esi + 0x178]
mov byte [esi + 0x2f8], al
mov byte [esi + 0x30c], 0xad
mov byte [esi + 0x30d], 0xbb
mov byte [esi + 0x30e], 0x32
mov eax, 3
mov byte [esi + eax + 0x30c], 0
add eax, 1
cmp eax, 7
jne 0x4135b3
xor eax, eax
cmp eax, 7
jae 0x4135f6
movzx edx, byte [esi + eax + 0x30c]
mov ecx, eax
add ecx, 0xcc
mov ebx, eax
add ebx, 0x4c
and ebx, edx
shl ebx, 1
add ecx, edx
sub ecx, ebx
add cl, 4
mov byte [esi + eax + 0x30c], cl
add eax, 1
jmp 0x4135c5
mov eax, dword [esi + 0x3c8]
lea ecx, [esi + 0x30c]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004018b0
add esp, 8
mov ecx, dword [esi + 0xfc]
shl ecx, 3
add ecx, dword [esi + 0xf8]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.004188d0
mov eax, dword [esi + 0xfc]
sub eax, 0xffffffff
mov dword [esi + 0x4f4], eax
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x48bdee16
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0x384]
mov edi, dword [esi + 0x388]
mov dword [esi + 0x5c], eax
lea ecx, [esi + 0x598]
sub esp, 4
mov dword [esp], 3
call fcn.00408fe0
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x16c]
mov edx, dword [esi + 0x168]
lea ebx, [esi + 0x598]
sub esp, 0x14
mov dword [esp], ebx
mov dword [esp + 4], edx
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
call fcn.00421510
add esp, 0x14
lea ecx, [esi + 0x598]
call fcn.00409ac0
mov eax, 0xd69d7859
cmp dword [esi + 0x5c], 0
je 0x4136e3
mov eax, 0xecd1a912
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0x4f8]
shl eax, 3
add eax, dword [esi + 0x5c]
mov dword [esi + 0x3d0], eax
mov ecx, dword [esi + 0x3d0]
mov eax, 0xcb8b5ddc
cmp dword [esi + 0x5c], ecx
je 0x413744
mov eax, 0x5e1eb00
mov edi, dword [esi]
mov ecx, dword [edi]
mov dword [ecx], eax
mov eax, dword [esi + 0x3d0]
mov dword [esi + 0x38c], eax
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0x3cc]
sub esp, 4
mov dword [esp], eax
call fcn.004083f0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x45546b83
mov ebx, dword [esi + 4]
jmp 0x414102
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x788a3279
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0x16c]
sub esp, 4
mov dword [esp], eax
call fcn.004083f0
add esp, 4
mov eax, dword [edi]
mov dword [eax], 0xf9900b1e
jmp 0x414102
lea ecx, [esi + 0x598]
call fcn.004090c0
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xad134cbf
mov ebx, dword [esi + 4]
jmp 0x414102
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x6f8fe21e
mov ebx, dword [esi + 4]
jmp 0x414102
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x8781353a
mov eax, dword [esi + 0x4fc]
mov dword [esi + 0x34c], eax
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [esi + 0xd4]
sub esp, 4
mov dword [esp], eax
call fcn.004083f0
add esp, 4
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xd3c7366e
mov ebx, dword [esi + 4]
jmp 0x414102
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x3216cd24
mov ebx, dword [esi + 4]
jmp 0x414102
das
aam 5
fisub word [esi]
ret
call 0xadb70a49
aad 0x39
inc ebp
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0x27305232
mov ebx, dword [esi + 4]
jmp 0x414102
mov eax, dword [edi]
mov dword [eax], 0x92964232
mov ebx, dword [esi + 4]
jmp 0x414102
cld
jg 0x414087
jge 0x4140cb
ljmp 0xbc91:0xa172c025
inc ebx
pop ebp
invalid
mov edi, dword [esi]
mov eax, dword [edi]
mov dword [eax], 0xf606c07
mov ebx, dword [esi + 4]
jmp 0x414102
jmp 0x40edc3