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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x7a8
mov esi, esp
mov al, byte [esi + 0x1f4]
mov byte [esi + 0x1f8], al
mov byte [esi + 0x46c], 0x53
mov byte [esi + 0x46d], 0xf1
mov eax, 2
mov byte [esi + eax + 0x46c], 0
add eax, 1
cmp eax, 7
jne 0x40f630
xor eax, eax
cmp eax, 7
jae 0x40f6b7
movzx edx, byte [esi + eax + 0x46c]
mov edi, 0x34464ab
sub edi, eax
mov ecx, 0x34464ab
sub ecx, eax
and ecx, edi
or ecx, edx
mov edi, 0xab
sub edi, eax
mov ebx, 0xab
sub ebx, eax
or edi, ebx
mov ebx, edx
xor ebx, 0xffffffff
or edi, ebx
add edi, edx
mov edx, 0xfffffffe
sub edx, edi
and edx, ecx
mov ecx, edx
and ecx, 0x6b321e8f
and edx, 0x94cde170
xor edx, 0x94cde170
sub edx, ecx
add edx, 0x1055f75b
mov ecx, edx
shl ecx, 1
and ecx, 0x1e
xor edx, 0x70
sub ecx, edx
mov byte [esi + eax + 0x46c], cl
add eax, 1
jmp 0x40f642
sub esp, 8
lea eax, [esi + 0x46c]
mov dword [esp + 4], eax
mov eax, dword [ebp + 8]
mov dword [esp], eax
call fcn.00401ae0
add esp, 8
mov dword [esi + 0xa8], eax
push eax
mov edi, esp
push eax
mov ebx, esp
mov dword [edi], 0x3ebd9a9e
mov dword [ebx], edi
mov dword [esi], edi
mov eax, dword [edi]
mov ecx, eax
sub ecx, 0x8092a0a1
je 0x4102f6
jmp 0x40f6fa
mov ecx, eax
sub ecx, 0x81a25271
je 0x413fe2
jmp 0x40f70a
mov ecx, eax
sub ecx, 0x879d53ac
je 0x413fd5
jmp 0x40f71a
mov ecx, eax
sub ecx, 0x887c028a
je 0x41316f
jmp 0x40f72a
mov ecx, eax
sub ecx, 0x887f27a3
je 0x4125af
jmp 0x40f73a
mov ecx, eax
sub ecx, 0x901d1b09
je 0x4131d9
jmp 0x40f74a
mov ecx, eax
sub ecx, 0x916713ee
je 0x41116f
jmp 0x40f75a
mov ecx, eax
sub ecx, 0x924315c0
je 0x4125d7
jmp 0x40f76a
mov ecx, eax
sub ecx, 0x955d8259
je 0x4114f0
jmp 0x40f77a
mov ecx, eax
sub ecx, 0x98f885ed
je 0x4128a7
jmp 0x40f78a
mov ecx, eax
sub ecx, 0x9a62119c
je 0x410857
jmp 0x40f79a
mov ecx, eax
sub ecx, 0x9a7820f1
je 0x41050c
jmp 0x40f7aa
mov ecx, eax
sub ecx, 0x9a98a25f
je 0x413134
jmp 0x40f7ba
mov ecx, eax
sub ecx, 0x9fb9f7d3
je 0x412453
jmp 0x40f7ca
mov ecx, eax
sub ecx, 0x9fc1584c
je 0x4110a6
jmp 0x40f7da
mov ecx, eax
sub ecx, 0xa180810b
je 0x414012
jmp 0x40f7ea
mov ecx, eax
sub ecx, 0xa1f09e6a
je 0x41141e
jmp 0x40f7fa
mov ecx, eax
sub ecx, 0xa216ce8a
je 0x41370a
jmp 0x40f80a
mov ecx, eax
sub ecx, 0xa5288be2
je 0x4136da
jmp 0x40f81a
mov ecx, eax
sub ecx, 0xa6c0c144
je 0x413c6c
jmp 0x40f82a
mov ecx, eax
sub ecx, 0xa74ca166
je 0x413931
jmp 0x40f83a
mov ecx, eax
sub ecx, 0xa7e0165e
je 0x41409f
jmp 0x40f84a
mov ecx, eax
sub ecx, 0xa86347cd
je 0x412de6
jmp 0x40f85a
mov ecx, eax
sub ecx, 0xa867c7c4
je 0x412b69
jmp 0x40f86a
mov ecx, eax
sub ecx, 0xa8de7af3
je 0x4135e6
jmp 0x40f87a
mov ecx, eax
sub ecx, 0xaa40bea2
je 0x412974
jmp 0x40f88a
mov ecx, eax
sub ecx, 0xaaa3bacb
je 0x411509
jmp 0x40f89a
mov ecx, eax
sub ecx, 0xaaaab3b9
je 0x4130df
jmp 0x40f8aa
mov ecx, eax
sub ecx, 0xabb5e29b
je 0x4128b4
jmp 0x40f8ba
mov ecx, eax
sub ecx, 0xabfb8dc4
je 0x412b33
jmp 0x40f8ca
mov ecx, eax
sub ecx, 0xadf8d389
je 0x411449
jmp 0x40f8da
mov ecx, eax
sub ecx, 0xaf1ccea6
je 0x412956
jmp 0x40f8ea
mov ecx, eax
sub ecx, 0xb0572375
je 0x411388
jmp 0x40f8fa
mov ecx, eax
sub ecx, 0xb19e5d82
je 0x413be1
jmp 0x40f90a
mov ecx, eax
sub ecx, 0xb207a8c6
je 0x41289a
jmp 0x40f91a
mov ecx, eax
sub ecx, 0xb350ecfa
je 0x410406
jmp 0x40f92a
mov ecx, eax
sub ecx, 0xb4ac41b1
je 0x4112ff
jmp 0x40f93a
mov ecx, eax
sub ecx, 0xb7a1c8e7
je 0x411456
jmp 0x40f94a
mov ecx, eax
sub ecx, 0xb7acc331
je 0x411206
jmp 0x40f95a
mov ecx, eax
sub ecx, 0xb88b0c83
je 0x41363f
jmp 0x40f96a
mov ecx, eax
sub ecx, 0xbb07927d
je 0x41106a
jmp 0x40f97a
mov ecx, eax
sub ecx, 0xbc2c92f9
je 0x41405c
jmp 0x40f98a
mov ecx, eax
sub ecx, 0xbcfe3d61
je 0x4119a3
jmp 0x40f99a
mov ecx, eax
sub ecx, 0xbd8f2cb1
je 0x412b76
jmp 0x40f9aa
mov ecx, eax
sub ecx, 0xc13a2fc9
je 0x413f20
jmp 0x40f9ba
mov ecx, eax
sub ecx, 0xc391415f
je 0x413767
jmp 0x40f9ca
mov ecx, eax
sub ecx, 0xc4c84de3
je 0x410f16
jmp 0x40f9da
mov ecx, eax
sub ecx, 0xc5fe3720
je 0x413970
jmp 0x40f9ea
mov ecx, eax
sub ecx, 0xc6b9fcf5
je 0x41287a
jmp 0x40f9fa
mov ecx, eax
sub ecx, 0xc78e5c49
je 0x412981
jmp 0x40fa0a
mov ecx, eax
sub ecx, 0xcc552c6a
je 0x4131ad
jmp 0x40fa1a
mov ecx, eax
sub ecx, 0xccb27c1f
je 0x413b52
jmp 0x40fa2a
mov ecx, eax
sub ecx, 0xccc8fefb
je 0x4113db
jmp 0x40fa3a
mov ecx, eax
sub ecx, 0xce859cdf
je 0x41411c
jmp 0x40fa4a
mov ecx, eax
sub ecx, 0xced9e37e
je 0x413685
jmp 0x40fa5a
mov ecx, eax
sub ecx, 0xcef023a9
je 0x4140e6
jmp 0x40fa6a
mov ecx, eax
sub ecx, 0xcf424b05
je 0x41286b
jmp 0x40fa7a
mov ecx, eax
sub ecx, 0xcfc182b0
je 0x410f45
jmp 0x40fa8a
mov ecx, eax
sub ecx, 0xd19e7ebb
je 0x41140f
jmp 0x40fa9a
mov ecx, eax
sub ecx, 0xd5131222
je 0x4136a8
jmp 0x40faaa
mov ecx, eax
sub ecx, 0xd555639b
je 0x413613
jmp 0x40faba
mov ecx, eax
sub ecx, 0xd5630788
je 0x4129aa
jmp 0x40faca
mov ecx, eax
sub ecx, 0xd5a2b21b
je 0x410331
jmp 0x40fada
mov ecx, eax
sub ecx, 0xd6ea08fb
je 0x4104f1
mov eax, dword [esi + 0x32c]
mov dword [esi + 0xac], eax
mov eax, dword [esi + 0xa8]
sub esp, 4
mov dword [esp], eax
call fcn.00402030
add esp, 4
mov ecx, 0x72f95f50
cmp dword [esi + 0xac], eax
jb 0x410328
mov ecx, 0xd5a2b21b
mov eax, dword [ebx]
mov dword [eax], ecx
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0xa7e0165e
mov byte [esi + 0xb], 1
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0xf8bdffc0
jmp 0x4142b1
mov eax, 0xb7a1c8e7
cmp dword [esi + 0x40], 3
je 0x41051c
mov eax, 0xbc2c92f9
mov ecx, dword [ebx]
mov dword [ecx], eax
jmp 0x4142b1
mov al, byte [esi + 0x1d0]
mov byte [esi + 0x214], al
mov byte [esi + 0x444], 0x64
mov byte [esi + 0x445], 0xc1
mov eax, 2
mov byte [esi + eax + 0x444], 0
add eax, 1
cmp eax, 5
jne 0x410876
xor eax, eax
cmp eax, 5
jae 0x4108cf
movzx edx, byte [esi + eax + 0x444]
mov ecx, eax
add ecx, 0x3c533430
mov edi, 0xcf
sub edi, eax
and edi, edx
xor ecx, edx
add ecx, edx
sub ecx, edi
mov edi, eax
add edi, 0x30
and edi, edx
mov edx, ecx
xor edx, edi
xor edi, 0xffffffff
and ecx, edi
shl ecx, 1
sub ecx, edx
add cl, 0x10
mov byte [esi + eax + 0x444], cl
add eax, 1
jmp 0x410888
mov eax, dword [esi + 4]
lea ecx, [esi + 0x444]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 3
call fcn.00401f10
add esp, 0xc
mov ecx, 0xfb937b2c
cmp eax, 0
mov edi, dword [esi]
jne 0x410903
mov ecx, 0xe5f4be76
mov eax, dword [ebx]
mov dword [eax], ecx
jmp 0x4142b1
mov eax, dword [esi + 0xc]
sub esp, 4
mov dword [esp], eax
call fcn.00408ad0
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0x51ca7b2e
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0x2cc78e12
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0xa1f09e6a
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [esi + 0xc]
sub esp, 4
mov dword [esp], eax
call fcn.00408ad0
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0x42463608
jmp 0x4142b1
mov eax, dword [esi + 0x330]
mov dword [esi + 0xbc], eax
mov eax, dword [esi + 0x370]
sub esp, 4
mov dword [esp], eax
call fcn.00402030
add esp, 4
mov ecx, 0x6727966
cmp dword [esi + 0xbc], eax
jb 0x4111a1
mov ecx, 0xeeabaf0d
mov eax, dword [ebx]
mov dword [eax], ecx
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0xe67fc551
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [esi + 0xc4]
sub esp, 4
mov dword [esp], eax
call fcn.00408ad0
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0x39be2a74
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [esi + 0xb8]
sub esp, 4
mov dword [esp], eax
call fcn.00408ad0
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0x61fd0ab5
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0xf4d9ba7f
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0xa1f09e6a
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0x2cc78e12
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0xbc2c92f9
jmp 0x4142b1
mov al, byte [esi + 0x1a0]
mov byte [esi + 0x238], al
mov byte [esi + 0x48], 0x73
mov byte [esi + 0x49], 0x99
mov eax, 2
mov byte [esi + eax + 0x48], 0
add eax, 1
cmp eax, 4
jne 0x41146f
xor edi, edi
cmp edi, 4
jae 0x4114b6
movzx eax, byte [esi + edi + 0x48]
mov edx, edi
add edx, 0x52ef145a
xor edx, eax
mov ecx, edx
add ecx, 0x61549a3d
shl edx, 1
and edx, 2
xor edx, 2
mov eax, ecx
and eax, edx
or ecx, edx
xor ecx, 1
add eax, ecx
mov byte [esi + edi + 0x48], al
add edi, 1
jmp 0x41147e
mov eax, dword [esi + 4]
lea ecx, [esi + 0x48]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
call fcn.00401f10
add esp, 0xc
cmp eax, 0
setne al
and al, 1
mov byte [esi + 0x20], al
mov eax, dword [ebx]
mov dword [eax], 0x955d8259
mov edi, dword [esi]
jmp 0x4142b1
mov eax, 0xaaa3bacb
test byte [esi + 0x20], 1
jne 0x411500
mov eax, 0xfbe49382
mov ecx, dword [ebx]
mov dword [ecx], eax
jmp 0x4142b1
mov al, byte [esi + 0x19c]
mov byte [esi + 0x23c], al
mov byte [esi + 0x44], 0x5c
mov byte [esi + 0x45], 0xcb
mov eax, 2
mov byte [esi + eax + 0x44], 0
add eax, 1
cmp eax, 4
jne 0x411522
xor eax, eax
cmp eax, 4
jae 0x411561
movzx edx, byte [esi + eax + 0x44]
mov ecx, eax
add ecx, 0xd3
mov edi, edx
xor edi, 0xffffffff
and ecx, edi
mov edi, 0x2c
sub edi, eax
and edi, edx
or ecx, edi
add cl, 0xe1
mov byte [esi + eax + 0x44], cl
add eax, 1
jmp 0x411531
mov eax, dword [esi + 4]
lea ecx, [esi + 0x44]
sub esp, 0xc
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 2
call fcn.00401f10
add esp, 0xc
mov ecx, 0x4e608821
cmp eax, 0
mov edi, dword [esi]
jne 0x411592
mov ecx, 0xfbe49382
mov eax, dword [ebx]
mov dword [eax], ecx
jmp 0x4142b1
mov al, byte [esi + 0x188]
mov byte [esi + 0x250], al
mov byte [esi + 0x404], 0xd
mov byte [esi + 0x405], 0x6b
mov eax, 2
mov byte [esi + eax + 0x404], 0
add eax, 1
cmp eax, 6
jne 0x4119c2
xor eax, eax
cmp eax, 6
jae 0x411a15
mov dl, byte [esi + eax + 0x404]
mov edi, eax
and edi, 0x19
xor edi, 0x19
mov ecx, eax
and ecx, 0xe6
sub ecx, edi
xor cl, dl
add cl, 0x7d
mov byte [esi + eax + 0x404], cl
mov ecx, eax
and ecx, 1
mov edx, eax
and edx, 6
mov edi, eax
xor edi, 1
add eax, edi
sub eax, edx
add eax, ecx
jmp 0x4119d4
mov eax, dword [esi + 4]
lea ecx, [esi + 0x404]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401880
add esp, 8
mov dword [esi + 0x328], eax
mov al, byte [esi + 0x184]
mov byte [esi + 0x254], al
mov byte [esi + 0x3fc], 0xb4
mov byte [esi + 0x3fd], 0x2b
mov eax, 2
mov byte [esi + eax + 0x3fc], 0
add eax, 1
cmp eax, 7
jne 0x411a55
xor eax, eax
cmp eax, 7
jae 0x411ac5
movzx edx, byte [esi + eax + 0x3fc]
mov edi, eax
shl edi, 1
and edi, 0x5086a956
mov ecx, eax
xor ecx, 0xa84354ab
add ecx, edi
add ecx, 0x456195f7
mov edi, ecx
xor edi, 0xa84354ab
shl ecx, 1
and ecx, 0xaf7956a8
sub ecx, edi
xor ecx, edx
mov edx, ecx
and edx, 0x2c
mov edi, ecx
and edi, 0x2c
add edi, 0xd4
add ecx, edx
sub ecx, edi
add cl, 1
mov byte [esi + eax + 0x3fc], cl
add eax, 1
jmp 0x411a67
mov eax, dword [esi + 4]
lea ecx, [esi + 0x3fc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401880
add esp, 8
mov dword [esi + 0x68], eax
mov al, byte [esi + 0x180]
mov byte [esi + 0x258], al
mov byte [esi + 0x3f4], 0x97
mov byte [esi + 0x3f5], 0x2b
mov eax, 2
mov byte [esi + eax + 0x3f4], 0
add eax, 1
cmp eax, 8
jne 0x411b02
xor eax, eax
cmp eax, 8
jae 0x411b71
mov dword [esi + 0x4b4], eax
mov cl, byte [esi + eax + 0x3f4]
mov byte [esi + 0x18], cl
movzx edx, cl
mov ecx, eax
add ecx, 0x7b8c9b07
mov edi, ecx
and edi, edx
mov eax, edi
and eax, 0xfd
mov edx, edi
and edx, 2
xor edx, 2
imul edx, eax
mov eax, edi
and eax, 2
or edi, 2
imul edi, eax
add edi, edx
sub ecx, edi
add cl, byte [esi + 0x18]
add cl, 0xdd
mov eax, dword [esi + 0x4b4]
mov byte [esi + eax + 0x3f4], cl
add eax, 1
jmp 0x411b14
mov eax, dword [esi + 4]
lea ecx, [esi + 0x3f4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401ae0
add esp, 8
mov dword [esi + 0x378], eax
mov al, byte [esi + 0x17c]
mov byte [esi + 0x25c], al
mov byte [esi + 0x3ec], 0xba
mov byte [esi + 0x3ed], 0x3b
mov eax, 2
mov byte [esi + eax + 0x3ec], 0
add eax, 1
cmp eax, 7
jne 0x411bb1
xor eax, eax
cmp eax, 7
jae 0x411c13
movzx ecx, byte [esi + eax + 0x3ec]
mov edi, eax
add edi, 0x5c2ee34b
xor edi, ecx
mov ecx, edi
shl ecx, 1
mov edx, 2
sub edx, ecx
and edx, 2
xor edx, 2
mov ecx, edi
xor ecx, 1
add ecx, 0x88
and edi, edx
shl edi, 1
xor ecx, edx
add ecx, edi
mov byte [esi + eax + 0x3ec], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x411bc3
mov eax, dword [esi + 4]
lea ecx, [esi + 0x3ec]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401880
add esp, 8
mov dword [esi + 0x37c], eax
mov al, byte [esi + 0x178]
mov byte [esi + 0x260], al
mov byte [esi + 0x3e4], 0x40
mov byte [esi + 0x3e5], 0x2b
mov eax, 2
mov byte [esi + eax + 0x3e4], 0
add eax, 1
cmp eax, 5
jne 0x411c53
xor eax, eax
cmp eax, 5
jae 0x411c9d
movzx edx, byte [esi + eax + 0x3e4]
mov ecx, eax
add ecx, 0x6f6f9737
xor ecx, edx
add ecx, 0xd2d20bec
mov edx, ecx
xor edx, 0x57
shl ecx, 1
and ecx, 0x50
sub ecx, edx
add cl, 0x58
mov byte [esi + eax + 0x3e4], cl
add eax, 1
jmp 0x411c65
mov eax, dword [esi + 4]
sub esp, 8
lea ecx, [esi + 0x3e4]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004019b0
add esp, 8
fnstcw word [esi + 0x54]
movzx eax, word [esi + 0x54]
or eax, 0xc00
mov word [esi + 0x2c4], ax
fldcw word [esi + 0x2c4]
fistp dword [esi + 0x50c]
fldcw word [esi + 0x54]
mov eax, dword [esi + 0x50c]
mov dword [esi + 0x524], eax
mov al, byte [esi + 0x174]
mov byte [esi + 0x264], al
mov byte [esi + 0x38], 0x1a
mov byte [esi + 0x39], 0xea
mov byte [esi + 0x3a], 0x66
mov eax, 3
mov byte [esi + eax + 0x38], 0
add eax, 1
cmp eax, 4
jne 0x411d03
xor eax, eax
cmp eax, 4
jae 0x411d5b
movzx edx, byte [esi + eax + 0x38]
mov dword [esi + 0x490], edx
mov ecx, 0x16
sub ecx, eax
or ecx, edx
mov edx, 0x16
sub edx, eax
mov edi, 0x16
sub edi, eax
or edx, edi
and edx, dword [esi + 0x490]
xor ecx, 0xffffffff
or edx, ecx
add dl, 0x73
mov byte [esi + eax + 0x38], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x411d12
mov eax, dword [esi + 4]
sub esp, 8
lea ecx, [esi + 0x38]
mov dword [esp + 4], ecx
mov dword [esp], eax
call fcn.004019b0
add esp, 8
fnstcw word [esi + 0x52]
movzx eax, word [esi + 0x52]
or eax, 0xc00
mov word [esi + 0x2c2], ax
fldcw word [esi + 0x2c2]
fistp dword [esi + 0x508]
fldcw word [esi + 0x52]
mov eax, dword [esi + 0x508]
mov dword [esi + 0x528], eax
sub esp, 4
mov eax, dword [esi + 0x328]
mov dword [esp], eax
call fcn.00418ef0
add esp, 4
mov edi, eax
mov eax, edi
and eax, 1
shl eax, 1
xor edi, 1
add edi, eax
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x411ddb
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408ac0
add esp, 4
mov dword [esi + 0xc8], eax
mov eax, dword [esi + 0xc8]
xor ecx, ecx
sub esp, 0x10
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esi + 0x328]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040b440
add esp, 0x10
mov eax, dword [esi + 0xc8]
lea ecx, [esi + 0x570]
sub esp, 4
mov dword [esp], eax
call fcn.00418f70
mov eax, dword [ebx]
mov dword [eax], 0x6e11fcac
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0x43dd9e2a
mov eax, dword [esi + 0x74]
mov dword [esi + 0x338], eax
jmp 0x4142b1
mov eax, dword [esi + 0xd0]
mov ecx, dword [esi + 0x78]
sub esp, 8
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.0043a940
add esp, 8
mov eax, dword [ebx]
mov dword [eax], 0x924315c0
jmp 0x4142b1
mov eax, dword [esi + 0x78]
sub esp, 4
mov dword [esp], eax
call fcn.00408ad0
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0x1ec5a924
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0xc6b9fcf5
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [esi + 0x7c]
sub esp, 4
mov dword [esp], eax
call fcn.00408ad0
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0xb207a8c6
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0x98f885ed
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0xabb5e29b
jmp 0x4142b1
mov eax, dword [esi + 0xd8]
sub eax, 0xffffffff
mov dword [esi + 0x544], eax
mov eax, dword [ebx]
mov dword [eax], 0xf3c319ef
mov eax, dword [esi + 0x544]
mov dword [esi + 0x33c], eax
jmp 0x4142b1
mov eax, dword [esi + 0x6c]
sub esp, 4
mov dword [esp], eax
call fcn.0043c450
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0xaa40bea2
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0xc78e5c49
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0x3ac15a51
mov edi, dword [esi]
jmp 0x4142b1
mov al, byte [esi + 0x160]
mov byte [esi + 0x284], al
mov byte [esi + 0x3dc], 0xfc
mov byte [esi + 0x3dd], 0xb
mov eax, 2
mov byte [esi + eax + 0x3dc], 0
add eax, 1
cmp eax, 5
jne 0x4129c9
xor eax, eax
cmp eax, 5
jae 0x412a4b
mov ecx, eax
mov dword [esi + 0x4c8], ecx
movzx eax, byte [esi + ecx + 0x3dc]
mov dword [esi + 0x4ac], eax
add ecx, 0xe1dcbcc3
mov edi, ecx
and edi, eax
mov edx, edi
and edx, 0xfd
mov eax, edi
and eax, 2
xor eax, 2
imul eax, edx
mov edx, edi
and edx, 2
or edi, 2
imul edi, edx
add edi, eax
add ecx, dword [esi + 0x4ac]
sub ecx, edi
mov eax, ecx
shl eax, 1
and eax, 0x60
xor ecx, 0xcf
sub eax, ecx
mov ecx, dword [esi + 0x4c8]
mov byte [esi + ecx + 0x3dc], al
add ecx, 1
mov eax, ecx
jmp 0x4129db
mov eax, dword [esi + 4]
lea ecx, [esi + 0x3dc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401880
add esp, 8
mov dword [esi + 0xe0], eax
mov eax, dword [ebx]
mov dword [eax], 0x7df00419
mov edi, dword [esi]
jmp 0x4142b1
mov al, byte [esi + 0x24]
mov cl, byte [esi + 0x23]
or cl, al
and cl, 1
mov byte [esi + 0x25], cl
mov eax, dword [ebx]
mov dword [eax], 0x3b3d78cc
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0xe13a35ea
jmp 0x4142b1
mov eax, dword [esi + 0xe0]
sub esp, 4
mov dword [esp], eax
call fcn.00418ef0
add esp, 4
mov edi, eax
mov eax, edi
and eax, 1
shl eax, 1
xor edi, 1
add edi, eax
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x412bb0
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408ac0
add esp, 4
mov dword [esi + 0xe8], eax
mov eax, dword [esi + 0xe8]
mov ecx, dword [esi + 0xe0]
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.0040b440
add esp, 0x10
mov eax, dword [esi + 0xe4]
sub esp, 4
mov dword [esp], eax
call fcn.00418ef0
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 0x412c21
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408ac0
add esp, 4
mov dword [esi + 0xec], eax
mov eax, dword [esi + 0xec]
mov ecx, dword [esi + 0xe4]
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.0040b440
add esp, 0x10
mov al, byte [esi + 0x158]
mov byte [esi + 0x28c], al
mov byte [esi + 0x3cc], 0xf2
mov byte [esi + 0x3cd], 0x99
mov eax, 2
mov byte [esi + eax + 0x3cc], 0
add eax, 1
cmp eax, 7
jne 0x412c80
xor ecx, ecx
cmp ecx, 7
jae 0x412d11
mov al, byte [esi + ecx + 0x3cc]
mov byte [esi + 0x1a], al
movzx eax, al
mov dword [esi + 0x4c4], eax
mov edx, ecx
add edx, 1
mov edi, ecx
xor edi, 0xffffffff
or edi, 0x94126d1a
add edi, edx
mov edx, edi
and edx, 2
xor edx, 2
mov eax, edi
and eax, 0xfffffffd
imul edx, eax
mov eax, edi
and eax, 2
or edi, 2
imul edi, eax
add edx, edi
mov eax, ecx
xor eax, 0x94126d1a
add edx, eax
mov eax, edx
and eax, dword [esi + 0x4c4]
shl eax, 1
sub edx, eax
add dl, byte [esi + 0x1a]
add dl, 0x7e
mov byte [esi + ecx + 0x3cc], dl
add ecx, 0xb505d94f
mov eax, ecx
xor eax, 0xb505d94e
shl ecx, 1
and ecx, 0x22
sub ecx, eax
jmp 0x412c92
mov eax, dword [esi + 4]
lea ecx, [esi + 0x3cc]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401880
add esp, 8
mov dword [esi + 0xf0], eax
mov eax, 0xfbc38261
cmp dword [esi + 0xf0], 0
jne 0x412d45
mov eax, 0xa86347cd
mov ecx, dword [ebx]
mov dword [ecx], eax
mov dword [esi + 0x340], 0
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [esi + 0x340]
mov dword [esi + 0xf4], eax
mov al, byte [esi + 0x154]
mov byte [esi + 0x290], al
mov byte [esi + 0x3c4], 0xfa
mov byte [esi + 0x3c5], 0x49
mov eax, 2
mov byte [esi + eax + 0x3c4], 0
add eax, 1
cmp eax, 8
jne 0x412e11
xor eax, eax
cmp eax, 8
jae 0x412eb7
mov cl, byte [esi + eax + 0x3c4]
mov byte [esi + 0x1c], cl
movzx ecx, cl
mov dword [esi + 0x4a8], ecx
mov dword [esi + 0x28], eax
mov ecx, dword [esi + 0x28]
add ecx, 0x3068066e
mov edx, 0x91
sub edx, dword [esi + 0x28]
mov edi, 0x91
sub edi, dword [esi + 0x28]
and edx, edi
xor edx, 0xffffffff
and edx, dword [esi + 0x4a8]
mov edi, ecx
and edi, edx
mov eax, edi
and eax, 0xfd
mov edx, edi
and edx, 2
xor edx, 2
imul edx, eax
mov eax, edi
and eax, 2
or edi, 2
imul edi, eax
add edi, edx
mov eax, edi
xor eax, 0xffffffff
and ecx, eax
mov eax, 0x91
sub eax, dword [esi + 0x28]
and edi, eax
sub ecx, edi
add cl, byte [esi + 0x1c]
add cl, 0xda
mov eax, dword [esi + 0x28]
mov byte [esi + eax + 0x3c4], cl
mov eax, dword [esi + 0x28]
add eax, 1
jmp 0x412e23
mov eax, dword [esi + 4]
lea ecx, [esi + 0x3c4]
sub esp, 8
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00401880
add esp, 8
mov dword [esi + 0xf8], eax
mov eax, 0x7dff4007
cmp dword [esi + 0xf8], 0
mov edi, dword [esi]
jne 0x412eed
mov eax, 0x246faf56
mov ecx, dword [ebx]
mov dword [ecx], eax
mov dword [esi + 0x344], 0
jmp 0x4142b1
mov eax, dword [esi + 0x80]
imul ecx, dword [esi + 0x2c], 0xc
add eax, ecx
mov dword [esi + 0x548], eax
mov eax, dword [ebx]
mov dword [eax], 0x6eb543b1
jmp 0x4142b1
mov ecx, dword [esi + 0x104]
call fcn.00419070
mov eax, dword [esi + 0x104]
add eax, 0xc
mov dword [esi + 0x394], eax
mov eax, dword [esi + 0x394]
cmp eax, dword [esi + 0x548]
sete al
and al, 1
mov byte [esi + 0x26], al
mov eax, dword [ebx]
mov dword [eax], 0x887c028a
jmp 0x4142b1
mov eax, 0x14039a7d
test byte [esi + 0x26], 1
jne 0x41317f
mov eax, 0xf247e4fb
mov ecx, dword [ebx]
mov dword [ecx], eax
mov eax, dword [esi + 0x394]
mov dword [esi + 0x348], eax
jmp 0x4142b1
mov eax, dword [esi + 0x34c]
mov dword [esi + 0x84], eax
mov ecx, dword [esi + 0x84]
mov eax, 0x3ae351e
cmp ecx, dword [esi + 0x2c]
jb 0x4131ce
mov eax, 0x901d1b09
mov ecx, dword [ebx]
mov dword [ecx], eax
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0x598817c4
mov eax, dword [esi + 0x80]
mov ecx, dword [esi + 0x2c]
mov dword [esi + 0x354], eax
mov dword [esi + 0x350], ecx
jmp 0x4142b1
mov eax, dword [esi + 0x30]
add eax, 0xfffffffc
mov dword [esi + 0x398], eax
mov eax, dword [esi + 0x398]
mov eax, dword [eax]
imul eax, eax, 0xc
add eax, dword [esi + 0x30]
mov dword [esi + 0x39c], eax
mov eax, dword [ebx]
mov dword [eax], 0xd555639b
jmp 0x4142b1
mov ecx, dword [esi + 0x39c]
mov eax, 0xced9e37e
cmp dword [esi + 0x30], ecx
je 0x413628
mov eax, 0xb88b0c83
mov ecx, dword [ebx]
mov dword [ecx], eax
mov eax, dword [esi + 0x39c]
mov dword [esi + 0x358], eax
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [esi + 0x358]
add eax, 0xfffffff4
mov dword [esi + 0x108], eax
mov ecx, dword [esi + 0x108]
call fcn.00419210
mov ecx, dword [esi + 0x108]
mov eax, 0xced9e37e
cmp ecx, dword [esi + 0x30]
je 0x41366e
mov eax, 0xb88b0c83
mov ecx, dword [ebx]
mov dword [ecx], eax
mov eax, dword [esi + 0x108]
mov dword [esi + 0x358], eax
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [esi + 0x398]
sub esp, 4
mov dword [esp], eax
call fcn.00408ad0
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0xd5131222
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0x4f40dff4
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0xeb524163
jmp 0x4142b1
mov eax, 0x386e39b2
cmp dword [esi + 0xf4], 0
je 0x41371d
mov eax, 0x293dcac6
mov ecx, dword [ebx]
mov dword [ecx], eax
jmp 0x4142b1
mov eax, dword [esi + 0xfc]
sub esp, 4
mov dword [esp], eax
call fcn.00408ad0
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0x1e41d806
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [esi + 0x10c]
test eax, eax
sete cl
mov eax, dword [esi + 0x110]
test eax, eax
sete al
or cl, al
mov eax, 0x84440f9
test cl, 1
jne 0x413958
mov eax, 0xc5fe3720
mov ecx, dword [ebx]
mov dword [ecx], eax
jmp 0x4142b1
mov eax, dword [esi + 0x10c]
sub esp, 4
mov dword [esp], eax
call fcn.00418ef0
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 0x4139a1
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408ac0
add esp, 4
mov dword [esi + 0x88], eax
mov eax, dword [esi + 0x88]
mov ecx, dword [esi + 0x10c]
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.0040b440
add esp, 0x10
mov eax, dword [esi + 0x110]
sub esp, 4
mov dword [esp], eax
call fcn.00418ef0
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 0x413a12
mov ecx, eax
sub esp, 4
mov dword [esp], ecx
call fcn.00408ac0
add esp, 4
mov dword [esi + 0x8c], eax
mov eax, dword [esi + 0x8c]
mov ecx, dword [esi + 0x110]
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.0040b440
add esp, 0x10
mov al, byte [esi + 0x124]
mov byte [esi + 0x2b0], al
mov byte [esi + 0x2dc], 0x35
mov byte [esi + 0x2dd], 1
mov byte [esi + 0x2de], 0x8e
mov eax, 3
mov byte [esi + eax + 0x2dc], 0
add eax, 1
cmp eax, 8
jne 0x413a78
xor eax, eax
cmp eax, 8
jae 0x413aff
movzx ecx, byte [esi + eax + 0x2dc]
mov dword [esi + 0x4b0], ecx
mov edi, eax
and edi, 0x1ba1be20
mov ecx, eax
and ecx, 0x1ba1be20
mov edx, eax
and edx, 2
xor edx, 2
imul edx, ecx
mov ecx, eax
and ecx, 2
or edi, 2
imul edi, ecx
add edi, edx
mov edx, eax
xor edx, 0x1ba1be22
add edx, edi
xor edx, dword [esi + 0x4b0]
add edx, 0x75d74955
mov ecx, edx
shl ecx, 1
and ecx, 2
mov edi, edx
shl edi, 1
and edi, 2
add edi, 0xff
sub edx, edi
add edx, ecx
mov byte [esi + eax + 0x2dc], dl
add eax, 1
jmp 0x413a8a
lea eax, [esi + 0x2dc]
sub esp, 8
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401ae0
add esp, 8
mov dword [esi + 0x114], eax
mov eax, 0xccb27c1f
cmp dword [esi + 0x114], 0
jne 0x413b33
mov eax, 0x1e97ecbb
mov ecx, dword [ebx]
mov dword [ecx], eax
mov dword [esi + 0x368], 0
mov dword [esi + 0x364], 0
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [esi + 0x114]
sub esp, 4
mov dword [esp], eax
call fcn.00402030
add esp, 4
mov dword [esi + 0x34], eax
mov eax, dword [esi + 0x34]
mov ecx, 8
mul ecx
seto cl
add eax, 4
setb ch
mov dl, cl
xor dl, 0xff
mov dh, ch
xor dh, 0xff
and cl, 0xff
and ch, 0xff
or cl, 0
or ch, 0
xor cl, ch
or dl, dh
xor dl, 0xff
and dl, 0xff
or cl, dl
mov edx, 0xffffffff
test cl, 1
jne 0x413baa
mov edx, eax
sub esp, 4
mov dword [esp], edx
call fcn.00408ac0
add esp, 4
mov ecx, dword [esi + 0x34]
mov dword [eax], ecx
add eax, 4
mov dword [esi + 0x90], eax
mov eax, 0xfa690c38
cmp dword [esi + 0x34], 0
je 0x413bd6
mov eax, 0xb19e5d82
mov ecx, dword [ebx]
mov dword [ecx], eax
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [esi + 0x90]
mov ecx, dword [esi + 0x34]
shl ecx, 3
add eax, ecx
mov dword [esi + 0x550], eax
mov eax, dword [ebx]
mov dword [eax], 0x7dc4b525
mov eax, dword [esi + 0x90]
mov dword [esi + 0x35c], eax
jmp 0x4142b1
mov eax, dword [esi + 0x360]
mov dword [esi + 0x94], eax
mov ecx, dword [esi + 0x94]
mov eax, 0x6fbe223d
cmp ecx, dword [esi + 0x34]
jb 0x413c8d
mov eax, 0x69deb3e8
mov ecx, dword [ebx]
mov dword [ecx], eax
jmp 0x4142b1
mov eax, dword [esi + 0x10]
add eax, 0xfffffffc
mov dword [esi + 0x3ac], eax
mov eax, dword [esi + 0x3ac]
mov eax, dword [eax]
shl eax, 3
add eax, dword [esi + 0x10]
mov dword [esi + 0x3b0], eax
mov ecx, dword [esi + 0x3b0]
mov eax, 0x7db410fb
cmp dword [esi + 0x10], ecx
je 0x413f55
mov eax, 0xdb0f4a7d
mov ecx, dword [ebx]
mov dword [ecx], eax
mov eax, dword [esi + 0x3b0]
mov dword [esi + 0x36c], eax
mov edi, dword [esi]
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0x81a25271
jmp 0x4142b1
mov eax, dword [esi + 0x88]
sub esp, 4
mov dword [esp], eax
call fcn.00408ad0
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0x19491156
jmp 0x4142b1
mov eax, dword [esi + 0x8c]
sub esp, 4
mov dword [esp], eax
call fcn.00408ad0
add esp, 4
mov eax, dword [ebx]
mov dword [eax], 0x3ea7f8ca
jmp 0x4142b1
mov eax, dword [ebx]
mov dword [eax], 0xf8bdffc0
mov edi, dword [esi]
jmp 0x4142b1
mov al, byte [esi + 0xb]
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
out dx, eax
add dword [eax], eax
add al, ah
invalid
invalid
lcall 0x2759, 0x346467a8
mov cl, 2
test dword [0x2c05b6d0], eax
xor edi, 0xffffffef
je 0x4140be
mov cs, word [eax]
push es
add byte [eax], al
call fcn.0040a2f0
lea ecx, [esi + 0x608]
call fcn.00409930
mov eax, dword [ebx]
mov dword [eax], 0xf4d9ba7f
mov edi, dword [esi]
jmp 0x4142b1
jmp 0x40f6e8