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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x620
mov al, byte [esp + 0x138]
mov byte [esp + 0x13c], al
mov byte [esp + 0x364], 0x29
mov byte [esp + 0x365], 0x87
mov eax, 2
mov byte [esp + eax + 0x364], 0
add eax, 1
cmp eax, 8
jne 0x40dfa2
xor eax, eax
cmp eax, 8
jae 0x40e029
movzx ecx, byte [esp + eax + 0x364]
mov edx, eax
shl edx, 1
and edx, 0x7e6cf5ba
mov esi, eax
xor esi, 0x3f367add
add esi, edx
mov edx, esi
add edx, 0xd9eb08e1
mov edi, 0x2614f71e
sub edi, esi
and edi, 0x3f367add
and edx, 0xc0c98522
sub edx, edi
mov esi, edx
and esi, ecx
mov edi, esi
and edi, 2
xor edi, 2
mov ebx, esi
and ebx, 0xfd
imul ebx, edi
mov edi, esi
and edi, 2
or esi, 2
imul esi, edi
add esi, ebx
add edx, ecx
sub edx, esi
add dl, 0x9b
mov byte [esp + eax + 0x364], dl
add eax, 1
jmp 0x40dfb4
lea eax, [esp + 0x364]
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401970
mov ebx, eax
cmp ebx, 0
jne 0x40e04d
xor eax, eax
jmp 0x410a78
xor esi, esi
jmp 0x40e051
mov dword [esp], ebx
call fcn.00401b80
cmp esi, eax
setb al
test al, 1
jne 0x40e06b
jmp 0x40e064
mov al, 1
jmp 0x410a78
mov dword [esp], ebx
mov dword [esp + 4], esi
call fcn.00401b90
mov dword [esp + 0x20], eax
mov al, byte [esp + 0x134]
mov byte [esp + 0x140], al
mov byte [esp + 0x40], 0x94
mov byte [esp + 0x41], 0x19
mov eax, 2
mov byte [esp + eax + 0x40], 0
add eax, 1
cmp eax, 4
jne 0x40e098
xor eax, eax
cmp eax, 4
jae 0x40e0f8
movzx edx, byte [esp + eax + 0x40]
mov edi, eax
shl edi, 1
and edi, 0xad02be0c
mov ecx, eax
xor ecx, 0x56815f06
add ecx, edi
mov edi, ecx
and edi, edx
shl edi, 1
add ecx, edx
sub ecx, edi
mov edx, ecx
and edx, 0xe1
mov edi, ecx
and edi, 0xe1
xor edi, 0xffffffff
add ecx, 0xe2
add ecx, edi
add edx, ecx
add dl, 1
mov byte [esp + eax + 0x40], dl
add eax, 1
jmp 0x40e0a7
lea eax, [esp + 0x40]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
mov dword [esp + 8], 3
call fcn.00401b20
test eax, eax
sete al
test al, 1
jne 0x40e11f
jmp 0x40e124
jmp 0x410a64
mov al, byte [esp + 0x130]
mov byte [esp + 0x144], al
mov byte [esp + 0x35c], 0xa0
mov byte [esp + 0x35d], 0x1b
mov eax, 2
mov byte [esp + eax + 0x35c], 0
add eax, 1
cmp eax, 5
jne 0x40e147
mov dword [esp + 0x24], ebx
xor eax, eax
cmp eax, 5
jae 0x40e1b9
movzx edx, byte [esp + eax + 0x35c]
mov ecx, eax
add ecx, 0xd03b9afb
mov edi, edx
xor edi, 0xffffffff
and ecx, edi
mov edi, 4
sub edi, eax
mov ebx, 4
sub ebx, eax
and edi, ebx
and edi, edx
or ecx, edi
mov edx, ecx
shl edx, 1
and edx, 0x30
xor ecx, 0x18
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x35c], cl
mov ecx, eax
and ecx, 1
or eax, 1
add eax, 0x7a5ee987
or eax, ecx
add eax, 0x85a11679
jmp 0x40e15d
lea eax, [esp + 0x35c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00401900
fnstcw word [esp + 0x4e]
movzx eax, word [esp + 0x4e]
or eax, 0xc00
mov word [esp + 0x20a], ax
fldcw word [esp + 0x20a]
fistp dword [esp + 0x3d4]
fldcw word [esp + 0x4e]
mov eax, dword [esp + 0x3d4]
mov ecx, eax
sub ecx, 3
mov ebx, dword [esp + 0x24]
ja 0x410a62
mov eax, dword [eax*4 + 0x4402bc]
jmp eax
mov al, byte [esp + 0x12c]
mov byte [esp + 0x148], al
mov byte [esp + 0x354], 0x68
mov byte [esp + 0x355], 0xf9
mov eax, 2
mov byte [esp + eax + 0x354], 0
add eax, 1
cmp eax, 7
jne 0x40e23a
xor eax, eax
cmp eax, 7
jae 0x40e28f
mov dl, byte [esp + eax + 0x354]
movzx edi, dl
mov ecx, eax
add ecx, 0xce43b2a
mov ebx, ecx
and ebx, edi
shl ebx, 1
sub ecx, ebx
add cl, dl
add cl, 0x2e
mov byte [esp + eax + 0x354], cl
add eax, 0x5513e217
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
add eax, 0xaaec1de9
jmp 0x40e24c
lea eax, [esp + 0x354]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401b20
cmp eax, 0
mov ebx, dword [esp + 0x24]
je 0x40e5ae
mov al, byte [esp + 0x120]
mov byte [esp + 0x14c], al
mov byte [esp + 0x124], 0xdf
mov byte [esp + 0x125], 0xdb
mov byte [esp + 0x126], 0xda
mov byte [esp + 0x127], 0xd9
mov eax, 4
mov byte [esp + eax + 0x124], 0
add eax, 1
cmp eax, 6
jne 0x40e2ee
xor eax, eax
cmp eax, 6
jae 0x40e334
mov dl, byte [esp + eax + 0x124]
movzx edi, dl
mov ecx, eax
add ecx, 0x3ad80acf
mov ebx, ecx
and ebx, edi
shl ebx, 1
sub ecx, ebx
mov ebx, dword [esp + 0x24]
add cl, dl
add cl, 0xf5
mov byte [esp + eax + 0x124], cl
add eax, 1
jmp 0x40e300
mov eax, dword [esp + 0x124]
mov cl, byte [esp + 0x11c]
mov byte [esp + 0x150], cl
mov byte [esp + 0x34c], 0x35
mov byte [esp + 0x34d], 0x89
mov ecx, 2
mov byte [esp + ecx + 0x34c], 0
add ecx, 1
cmp ecx, 7
jne 0x40e35e
xor ecx, ecx
cmp ecx, 7
jae 0x40e39a
mov dl, byte [esp + ecx + 0x34c]
mov dh, cl
add dh, 0x22
xor dh, dl
add dh, 0x56
mov byte [esp + ecx + 0x34c], dh
mov edx, ecx
shl edx, 1
or edx, 1
sub edx, ecx
mov ecx, edx
jmp 0x40e370
lea ecx, [esp + 0x34c]
mov edx, dword [esp + 0x20]
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
call fcn.00401b20
cmp eax, 0
je 0x40e5ae
mov al, byte [esp + 0x118]
mov byte [esp + 0x154], al
mov byte [esp + 0x344], 0x9a
mov byte [esp + 0x345], 0x2b
mov eax, 2
mov byte [esp + eax + 0x344], 0
add eax, 1
cmp eax, 7
jne 0x40e3e1
xor eax, eax
cmp eax, 7
jae 0x40e465
movzx edi, byte [esp + eax + 0x344]
mov edx, eax
and edx, 0x61189d87
mov ecx, eax
and ecx, 0x9ee76278
mov ebx, eax
xor ebx, 0x61189d87
add ebx, eax
sub ebx, ecx
add edx, ebx
mov ebx, edi
xor ebx, 0xffffffff
mov ecx, edx
and ecx, ebx
mov ebx, edi
shl ebx, 1
xor ebx, 0xffffffff
add ebx, edi
mov edi, edx
xor edi, 0xffffffff
shl edi, 1
add edi, edx
mov edx, 0xfffffffe
sub edx, edi
or ebx, edx
xor ebx, 0xffffffff
or ecx, ebx
mov edx, ecx
shl edx, 1
and edx, 0xa2
xor ecx, 0x51
add ecx, edx
add cl, 0xc
mov byte [esp + eax + 0x344], cl
add eax, 1
jmp 0x40e3f3
lea eax, [esp + 0x344]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401b20
cmp eax, 0
mov ebx, dword [esp + 0x24]
je 0x40e5ae
mov al, byte [esp + 0x114]
mov byte [esp + 0x158], al
mov byte [esp + 0x33c], 0x68
mov byte [esp + 0x33d], 0x8f
mov eax, 2
mov byte [esp + eax + 0x33c], 0
add eax, 1
cmp eax, 8
jne 0x40e4b4
xor eax, eax
cmp eax, 8
jae 0x40e4fe
mov dl, byte [esp + eax + 0x33c]
mov edi, eax
and edi, 0x23
xor edi, 0x23
mov ecx, eax
and ecx, 0xdc
sub ecx, edi
xor cl, dl
add cl, 0xaf
mov byte [esp + eax + 0x33c], cl
mov ecx, eax
xor ecx, 1
shl eax, 1
and eax, 2
add eax, ecx
jmp 0x40e4c6
lea eax, [esp + 0x33c]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401b20
cmp eax, 0
je 0x40e5ae
mov al, byte [esp + 0x110]
mov byte [esp + 0x15c], al
mov byte [esp + 0x38], 0x32
mov byte [esp + 0x39], 0x3e
mov byte [esp + 0x3a], 0x8e
mov eax, 3
mov byte [esp + eax + 0x38], 0
add eax, 1
cmp eax, 4
jne 0x40e548
xor eax, eax
cmp eax, 4
jae 0x40e583
movzx edx, byte [esp + eax + 0x38]
mov ecx, eax
add ecx, 0xe2
or ecx, edx
mov edi, eax
add edi, 0xe2
and edi, edx
sub ecx, edi
add cl, 0x96
mov byte [esp + eax + 0x38], cl
add eax, 1
jmp 0x40e557
lea eax, [esp + 0x38]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
mov dword [esp + 8], 3
call fcn.00401b20
test eax, eax
sete al
test al, 1
jne 0x410a62
jmp 0x40e5b3
jmp 0x410a62
mov al, byte [esp + 0x10c]
mov byte [esp + 0x160], al
mov byte [esp + 0x334], 0xac
mov byte [esp + 0x335], 0x1b
mov eax, 2
mov byte [esp + eax + 0x334], 0
add eax, 1
cmp eax, 5
jne 0x40e5d6
xor ebx, ebx
cmp ebx, 5
jae 0x40e635
movzx eax, byte [esp + ebx + 0x334]
mov dword [esp + 0x370], eax
mov ecx, ebx
add ecx, 0x86890ebb
mov edi, ecx
xor edi, eax
xor edi, 0xffffffff
mov edx, ebx
add edx, 0x3c
mov eax, 0x44
sub eax, ebx
or eax, edi
add eax, edx
shl eax, 1
add ecx, dword [esp + 0x370]
sub ecx, eax
add cl, 0x59
mov byte [esp + ebx + 0x334], cl
add ebx, 1
jmp 0x40e5e8
lea eax, [esp + 0x334]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov dword [esp + 0x28c], eax
mov al, byte [esp + 0x108]
mov byte [esp + 0x164], al
mov byte [esp + 0x32c], 0xa5
mov byte [esp + 0x32d], 0x11
mov eax, 2
mov byte [esp + eax + 0x32c], 0
add eax, 1
cmp eax, 8
jne 0x40e676
xor eax, eax
cmp eax, 8
jae 0x40e6da
movzx edi, byte [esp + eax + 0x32c]
mov edx, eax
add edx, 0xfc
mov ebx, 0xb0385c03
sub ebx, eax
mov ecx, 0xb0385c03
sub ecx, eax
or ebx, ecx
xor ebx, 0xffffffff
mov ecx, edi
or ecx, ebx
and edx, edi
sub ecx, edx
mov edx, ecx
and edx, 0xed
xor edx, 0xed
and ecx, 0x12
sub ecx, edx
add cl, 1
mov byte [esp + eax + 0x32c], cl
add eax, 1
jmp 0x40e688
lea eax, [esp + 0x32c]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401970
mov dword [esp + 0x294], eax
mov al, byte [esp + 0x104]
mov byte [esp + 0x168], al
mov byte [esp + 0x324], 0xba
mov byte [esp + 0x325], 0x31
mov eax, 2
mov byte [esp + eax + 0x324], 0
add eax, 1
cmp eax, 7
jne 0x40e71b
xor eax, eax
cmp eax, 7
jae 0x40e780
movzx edx, byte [esp + eax + 0x324]
mov edi, eax
add edi, 0x1b6dca4c
mov ecx, 0x649235b3
sub ecx, eax
and ecx, 0x57d92a45
and edi, 0xa826d5ba
or ecx, edi
xor ecx, edx
xor ecx, 0x57d92a45
add ecx, 0x76db0c83
mov edx, ecx
shl edx, 1
and edx, 0x56
xor ecx, 0x54
sub edx, ecx
add dl, 0x55
mov byte [esp + eax + 0x324], dl
add eax, 1
jmp 0x40e72d
lea eax, [esp + 0x324]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov dword [esp + 0x27c], eax
mov al, byte [esp + 0x100]
mov byte [esp + 0x16c], al
mov byte [esp + 0x31c], 0xfc
mov byte [esp + 0x31d], 0x11
mov eax, 2
mov byte [esp + eax + 0x31c], 0
add eax, 1
cmp eax, 7
jne 0x40e7c1
xor eax, eax
cmp eax, 7
jae 0x40e831
movzx edx, byte [esp + eax + 0x31c]
mov ecx, eax
add ecx, 0x810f2744
mov edi, ecx
and edi, edx
shl edi, 1
sub ecx, edi
add ecx, edx
mov edx, ecx
and edx, 0xa9
mov ebx, ecx
and ebx, 0xa9
mov edi, ecx
and edi, 2
xor edi, 2
imul edi, ebx
mov ebx, ecx
and ebx, 2
or edx, 2
imul edx, ebx
add edx, edi
xor ecx, 0xab
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x31c], cl
add eax, 1
jmp 0x40e7d3
lea eax, [esp + 0x31c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00401900
fnstcw word [esp + 0x4c]
movzx eax, word [esp + 0x4c]
or eax, 0xc00
mov word [esp + 0x208], ax
fldcw word [esp + 0x208]
fistp dword [esp + 0x3c8]
fldcw word [esp + 0x4c]
mov eax, dword [esp + 0x3c8]
mov dword [esp + 0x3b0], eax
mov al, byte [esp + 0xfc]
mov byte [esp + 0x170], al
mov byte [esp + 0x244], 0x72
mov byte [esp + 0x245], 0x6e
mov byte [esp + 0x246], 0x9e
mov eax, 3
mov byte [esp + eax + 0x244], 0
add eax, 1
cmp eax, 5
jne 0x40e8a9
xor eax, eax
cmp eax, 5
jae 0x40e91b
movzx ecx, byte [esp + eax + 0x244]
mov edx, eax
shl edx, 1
and edx, 0x15d6d5b4
mov edi, eax
xor edi, 0x8aeb6ada
add edi, edx
xor edi, ecx
mov ecx, edi
add ecx, 0x79837ce9
mov edx, 0x67c8316
sub edx, edi
and edx, 0x301c932c
and ecx, 0xcfe36cd3
sub ecx, edx
mov edx, ecx
add edx, 1
mov edi, ecx
xor edi, 0xffffffff
or edi, 1
add edi, edx
or ecx, 1
add ecx, edi
mov byte [esp + eax + 0x244], cl
add eax, 1
jmp 0x40e8bb
lea eax, [esp + 0x244]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00401900
fnstcw word [esp + 0x4a]
movzx eax, word [esp + 0x4a]
or eax, 0xc00
mov word [esp + 0x206], ax
fldcw word [esp + 0x206]
fistp dword [esp + 0x3c4]
fldcw word [esp + 0x4a]
mov eax, dword [esp + 0x3c4]
mov dword [esp + 0x3a8], eax
mov al, byte [esp + 0xf8]
mov byte [esp + 0x174], al
mov byte [esp + 0x23c], 0xa2
mov byte [esp + 0x23d], 0x9d
mov byte [esp + 0x23e], 0xf6
mov eax, 3
mov byte [esp + eax + 0x23c], 0
add eax, 1
cmp eax, 6
jne 0x40e993
xor eax, eax
cmp eax, 6
jae 0x40e9de
movzx edx, byte [esp + eax + 0x23c]
mov edi, 0xbdf1701
sub edi, eax
or edi, edx
mov ecx, 1
sub ecx, eax
and ecx, edx
xor ecx, edi
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
add cl, 0xa
mov byte [esp + eax + 0x23c], cl
add eax, 1
jmp 0x40e9a5
lea eax, [esp + 0x23c]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004019d0
cmp eax, 0
setg byte [esp + 0x2f]
mov eax, dword [esp + 0x28c]
mov dword [esp], eax
call fcn.004127e0
mov ebx, eax
mov dword [esp + 0x24c], ebx
sub ebx, 0xffffffff
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x40ea30
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
mov edi, eax
xor eax, eax
mov dword [esp], edi
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x28c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a8a0
xor eax, eax
lea eax, [esp + 0xf4]
mov dword [esp], 0
mov dword [esp + 4], edi
mov ecx, dword [esp + 0x24c]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 0
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], eax
call dword [0x44a88c]
sub esp, 0x18
mov eax, dword [esp + 0xf4]
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x40eab4
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
mov ebx, dword [0x44a88c]
mov ecx, dword [esp + 0xf4]
xor edx, edx
mov dword [esp], 0
mov dword [esp + 4], edi
mov edx, dword [esp + 0x24c]
mov dword [esp + 8], edx
mov dword [esp + 0x270], eax
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
lea eax, [esp + 0xf4]
mov dword [esp + 0x14], eax
call ebx
sub esp, 0x18
mov ebx, dword [esp + 0x24]
mov dword [esp], edi
call fcn.00408220
jmp 0x40eb0e
mov eax, dword [esp + 0x27c]
mov dword [esp], eax
call fcn.004127e0
mov edi, eax
sub edi, 0xffffffff
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x40eb3a
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
xor ecx, ecx
mov dword [esp + 0x264], eax
mov dword [esp], eax
mov dword [esp + 4], edi
mov eax, dword [esp + 0x27c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a8a0
lea ecx, [esp + 0x590]
mov dword [esp], 1
call fcn.00408e20
sub esp, 4
xor edi, edi
mov eax, dword [esp + 0x294]
mov dword [esp], eax
call fcn.00401b80
cmp edi, eax
setb al
test al, 1
jne 0x40eba1
jmp 0x40eb9c
jmp 0x40ec93
mov eax, dword [esp + 0x294]
mov dword [esp], eax
mov dword [esp + 0x250], edi
mov dword [esp + 4], edi
call fcn.00401b60
mov dword [esp], eax
call fcn.004018e0
mov edi, eax
cmp edi, 0
jne 0x40ebd6
mov edi, dword [esp + 0x250]
jmp 0x40ec8b
mov dword [esp], edi
call fcn.004127e0
mov ebx, eax
mov eax, ebx
and eax, 1
shl eax, 1
xor ebx, 1
add ebx, eax
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x40ec04
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov edi, eax
mov dword [esp + 0xc], 0
call fcn.0040a8a0
mov eax, dword [esp + 0x3b0]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x3a8]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], edi
mov eax, dword [esp + 0x270]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x264]
mov dword [esp + 4], eax
lea eax, [esp + 0x590]
mov dword [esp], eax
xor eax, eax
mov cl, byte [esp + 0x2f]
mov al, cl
and eax, 1
mov dword [esp + 0x18], eax
call fcn.0041d570
mov dword [esp], edi
call fcn.00408220
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x250]
jmp 0x40ec8b
add edi, 1
jmp 0x40eb82
mov eax, dword [esp + 0x264]
mov dword [esp], eax
call fcn.00408220
jmp 0x40eca4
mov eax, dword [esp + 0x270]
mov dword [esp], eax
call fcn.00408220
lea ecx, [esp + 0x590]
call fcn.00409890
lea ecx, [esp + 0x590]
call fcn.00408f00
jmp 0x410a62
mov al, byte [esp + 0xf0]
mov byte [esp + 0x178], al
mov byte [esp + 0x314], 0xb3
mov byte [esp + 0x315], 0x19
mov eax, 2
mov byte [esp + eax + 0x314], 0
add eax, 1
cmp eax, 5
jne 0x40ecf3
xor eax, eax
cmp eax, 5
jae 0x40ed39
mov cl, byte [esp + eax + 0x314]
mov dl, al
add dl, 0x3a
xor dl, cl
add dl, 0xde
mov byte [esp + eax + 0x314], dl
mov ecx, eax
shl ecx, 1
and ecx, 2
mov edx, eax
shl edx, 1
and edx, 2
add edx, 0xffffffff
sub eax, edx
add eax, ecx
jmp 0x40ed05
lea eax, [esp + 0x314]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401b20
cmp eax, 0
setne al
jmp 0x40ed60
test al, 1
jne 0x40ed69
jmp 0x40f0b4
mov al, byte [esp + 0xec]
mov byte [esp + 0x17c], al
mov byte [esp + 0x30c], 0xd0
mov byte [esp + 0x30d], 0x41
mov eax, 2
mov byte [esp + eax + 0x30c], 0
add eax, 1
cmp eax, 8
jne 0x40ed8c
xor eax, eax
cmp eax, 8
jae 0x40edf2
movzx edi, byte [esp + eax + 0x30c]
mov edx, 0x324de76f
sub edx, eax
or edx, edi
mov ecx, 0x6f
sub ecx, eax
mov ebx, 0x6f
sub ebx, eax
or ecx, ebx
and ecx, edi
xor edx, 0xffffffff
or ecx, edx
mov edx, ecx
add edx, 0xfb85852f
shl ecx, 1
and ecx, 2
xor ecx, 2
mov ebx, edx
and ebx, ecx
or edx, ecx
xor edx, 1
add ebx, edx
mov byte [esp + eax + 0x30c], bl
add eax, 1
jmp 0x40ed9e
lea eax, [esp + 0x30c]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401b20
cmp eax, 0
setne al
mov ebx, dword [esp + 0x24]
test al, 1
jne 0x40ee24
jmp 0x40f0b4
mov al, byte [esp + 0xe8]
mov byte [esp + 0x180], al
mov byte [esp + 0x304], 0x63
mov byte [esp + 0x305], 0x8f
mov eax, 2
mov byte [esp + eax + 0x304], 0
add eax, 1
cmp eax, 6
jne 0x40ee47
xor eax, eax
cmp eax, 6
jae 0x40eea2
movzx edx, byte [esp + eax + 0x304]
mov edi, eax
add edi, 0x36b7205d
mov ecx, 0xa2
sub ecx, eax
and ecx, edx
xor edx, 0xffffffff
and edi, edx
or ecx, edi
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
add cl, 0x2e
mov byte [esp + eax + 0x304], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x40ee59
lea eax, [esp + 0x304]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 5
call fcn.00401b20
cmp eax, 0
je 0x40f0b4
mov al, byte [esp + 0xe4]
mov byte [esp + 0x184], al
mov byte [esp + 0x2fc], 0x8e
mov byte [esp + 0x2fd], 9
mov eax, 2
mov byte [esp + eax + 0x2fc], 0
add eax, 1
cmp eax, 6
jne 0x40eeed
xor eax, eax
cmp eax, 6
jae 0x40ef2f
mov dl, byte [esp + eax + 0x2fc]
movzx edi, dl
mov ecx, eax
add ecx, 0x45d531fe
mov ebx, ecx
and ebx, edi
shl ebx, 1
sub ecx, ebx
add cl, dl
add cl, 0xa
mov byte [esp + eax + 0x2fc], cl
add eax, 1
jmp 0x40eeff
lea eax, [esp + 0x2fc]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 2
call fcn.00401b20
cmp eax, 0
mov ebx, dword [esp + 0x24]
je 0x40f0b4
mov al, byte [esp + 0xe0]
mov byte [esp + 0x188], al
mov byte [esp + 0x2f4], 0x6c
mov byte [esp + 0x2f5], 9
mov eax, 2
mov byte [esp + eax + 0x2f4], 0
add eax, 1
cmp eax, 6
jne 0x40ef7e
xor eax, eax
cmp eax, 6
jae 0x40efdd
movzx edx, byte [esp + eax + 0x2f4]
mov ecx, eax
add ecx, 0x492aae82
mov edi, ecx
shl edi, 1
mov ebx, eax
sub ebx, edi
add ebx, 0x81
and ebx, edx
xor edx, 0xffffffff
and ecx, edx
or ecx, ebx
add ecx, 0xd4f1ba8f
mov edx, ecx
xor edx, 0x19
shl ecx, 1
and ecx, 0xcc
sub ecx, edx
mov byte [esp + eax + 0x2f4], cl
add eax, 1
jmp 0x40ef90
lea eax, [esp + 0x2f4]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401b20
cmp eax, 0
setne al
mov ebx, dword [esp + 0x24]
test al, 1
jne 0x40f00f
jmp 0x40f0b4
mov al, byte [esp + 0xdc]
mov byte [esp + 0x18c], al
mov byte [esp + 0x234], 0x4e
mov byte [esp + 0x235], 0xbe
mov byte [esp + 0x236], 0x2a
mov eax, 3
mov byte [esp + eax + 0x234], 0
add eax, 1
cmp eax, 8
jne 0x40f03a
xor eax, eax
cmp eax, 8
jae 0x40f07d
movzx edx, byte [esp + eax + 0x234]
mov ecx, eax
add ecx, 0x37
mov edi, 0xc8
sub edi, eax
and edi, edx
xor edx, 0xffffffff
and ecx, edx
or ecx, edi
add cl, 0xed
mov byte [esp + eax + 0x234], cl
add eax, 1
jmp 0x40f04c
lea eax, [esp + 0x234]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 3
call fcn.00401b20
cmp eax, 0
setne al
xor al, 0xff
and al, 1
or al, 0
xor al, 0
test al, 1
jne 0x410a62
jmp 0x40f0b9
jmp 0x410a62
mov al, byte [esp + 0xd8]
mov byte [esp + 0x190], al
mov byte [esp + 0x2ec], 0xc3
mov byte [esp + 0x2ed], 0x79
mov eax, 2
mov byte [esp + eax + 0x2ec], 0
add eax, 1
cmp eax, 8
jne 0x40f0dc
xor eax, eax
cmp eax, 8
jae 0x40f15e
movzx edx, byte [esp + eax + 0x2ec]
mov dword [esp + 0x378], edx
mov ecx, eax
add ecx, 0x72293716
mov edi, ecx
and edi, edx
mov edx, edi
and edx, 0xfd
mov ebx, edi
and ebx, 2
xor ebx, 2
imul ebx, edx
mov edx, edi
and edx, 2
or edi, 2
imul edi, edx
add edi, ebx
add ecx, dword [esp + 0x378]
sub ecx, edi
add ecx, 0xc531ec91
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, edx
mov byte [esp + eax + 0x2ec], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x40f0ee
lea eax, [esp + 0x2ec]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov dword [esp + 0x288], eax
mov al, byte [esp + 0xd4]
mov byte [esp + 0x194], al
mov byte [esp + 0x3c], 0xc0
mov byte [esp + 0x3d], 0x31
mov eax, 2
mov byte [esp + eax + 0x3c], 0
add eax, 1
cmp eax, 4
jne 0x40f199
xor eax, eax
cmp eax, 4
jae 0x40f1ed
movzx edi, byte [esp + eax + 0x3c]
mov ecx, eax
xor ecx, 0x92bdd98c
mov edx, eax
shl edx, 1
and edx, 0xda844ce6
sub edx, ecx
mov ecx, edx
and ecx, edi
or edx, edi
mov edi, edx
xor edi, 0xffffffff
shl edi, 1
add edi, edx
mov edx, 0xfe
sub edx, edi
xor ecx, 0xffffffff
and edx, ecx
add dl, 0xbc
mov byte [esp + eax + 0x3c], dl
add eax, 1
jmp 0x40f1a8
lea eax, [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov cl, byte [esp + 0xd0]
mov byte [esp + 0x198], cl
mov byte [esp + 0x2e4], 0x83
mov byte [esp + 0x2e5], 0x1f
mov ecx, 2
mov byte [esp + ecx + 0x2e4], 0
add ecx, 1
cmp ecx, 8
jne 0x40f224
mov dword [esp + 0x3b4], eax
xor eax, eax
cmp eax, 8
jae 0x40f289
mov dl, byte [esp + eax + 0x2e4]
mov edi, eax
xor edi, 0x7a
mov ecx, eax
or ecx, 0x85
and ecx, edi
mov edi, eax
and edi, 0x85
xor edi, 0xffffffff
mov ebx, eax
add ebx, 0x86
add ebx, edi
add ecx, ebx
xor cl, dl
add cl, 0x67
mov byte [esp + eax + 0x2e4], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x40f23d
lea eax, [esp + 0x2e4]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401970
mov ebx, eax
mov al, byte [esp + 0xcc]
mov byte [esp + 0x19c], al
mov byte [esp + 0x2dc], 0x3e
mov byte [esp + 0x2dd], 0x87
mov eax, 2
mov byte [esp + eax + 0x2dc], 0
add eax, 1
cmp eax, 6
jne 0x40f2c5
xor eax, eax
cmp eax, 6
jae 0x40f2f9
mov cl, byte [esp + eax + 0x2dc]
mov dl, al
add dl, 0x21
xor dl, cl
add dl, 0x5b
mov byte [esp + eax + 0x2dc], dl
add eax, 1
jmp 0x40f2d7
lea eax, [esp + 0x2dc]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov dword [esp + 0x3bc], eax
mov al, byte [esp + 0xc8]
mov byte [esp + 0x1a0], al
mov byte [esp + 0x2d4], 0x9c
mov byte [esp + 0x2d5], 0x39
mov eax, 2
mov byte [esp + eax + 0x2d4], 0
add eax, 1
cmp eax, 5
jne 0x40f33a
xor eax, eax
cmp eax, 5
jae 0x40f388
movzx edx, byte [esp + eax + 0x2d4]
mov ecx, edx
xor ecx, 0xffffffff
mov edi, eax
add edi, 0x4a
and edi, ecx
mov ecx, 0xb5
sub ecx, eax
and ecx, edx
or ecx, edi
add cl, 0x8e
mov byte [esp + eax + 0x2d4], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x40f34c
lea eax, [esp + 0x2d4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00401900
fnstcw word [esp + 0x48]
movzx eax, word [esp + 0x48]
or eax, 0xc00
mov word [esp + 0x204], ax
fldcw word [esp + 0x204]
fistp dword [esp + 0x3d0]
fldcw word [esp + 0x48]
mov eax, dword [esp + 0x3d0]
mov dword [esp + 0x3c0], eax
mov al, byte [esp + 0xc4]
mov byte [esp + 0x1a4], al
mov byte [esp + 0x22c], 0x3e
mov byte [esp + 0x22d], 2
mov byte [esp + 0x22e], 0x92
mov eax, 3
mov byte [esp + eax + 0x22c], 0
add eax, 1
cmp eax, 8
jne 0x40f400
mov dword [esp + 0x2a0], ebx
xor edi, edi
cmp edi, 8
jae 0x40f497
movzx eax, byte [esp + edi + 0x22c]
mov dword [esp + 0x374], eax
mov edx, edi
add edx, 0xc12ce127
mov ecx, edx
shl ecx, 1
and ecx, 0x7ec82efa
xor edx, 0xbf64177d
add edx, ecx
mov ebx, edx
xor ebx, 0xffffffff
mov ecx, eax
or ecx, ebx
mov ebx, edx
shl ebx, 1
xor ebx, 0xffffffff
mov eax, edx
add eax, ebx
and edx, 0xe7
and eax, 0x18
or edx, eax
xor edx, 0x18
mov eax, dword [esp + 0x374]
xor eax, 0xffffffff
or edx, eax
and ecx, edx
mov eax, ecx
xor eax, 0xffffffff
shl eax, 1
and eax, 0x96
xor ecx, 0x34
add ecx, eax
add cl, 1
mov byte [esp + edi + 0x22c], cl
add edi, 1
jmp 0x40f419
lea eax, [esp + 0x22c]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.00401900
fnstcw word [esp + 0x46]
movzx eax, word [esp + 0x46]
or eax, 0xc00
mov word [esp + 0x202], ax
fldcw word [esp + 0x202]
fistp dword [esp + 0x3cc]
fldcw word [esp + 0x46]
mov eax, dword [esp + 0x3cc]
mov dword [esp + 0x3b8], eax
mov eax, dword [esp + 0x288]
mov dword [esp], eax
call fcn.004127e0
mov edi, eax
sub edi, 0xfc661dec
add edi, 1
add edi, 0xfc661dec
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x40f51c
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
mov ebx, eax
xor eax, eax
mov dword [esp], ebx
mov dword [esp + 4], edi
mov eax, dword [esp + 0x288]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a8a0
lea ecx, [esp + 0x3e8]
mov dword [esp], ebx
call fcn.00412840
sub esp, 4
mov dword [esp], ebx
call fcn.00408220
mov ebx, dword [esp + 0x24]
jmp 0x40f567
lea ecx, [esp + 0x3e8]
mov dword [esp], 0x1000
call fcn.004363e0
sub esp, 4
cmp eax, 0
jge 0x40f587
jmp 0x40fc0b
mov dword [esp + 0xc0], 0
mov eax, dword [esp + 0x3e8]
mov dword [esp + 0x398], eax
mov al, byte [esp + 0x1a8]
mov byte [esp + 0x200], al
mov byte [esp + 0x1ac], 0x6f
mov byte [esp + 0x1ad], 0x6e
mov byte [esp + 0x1ae], 0x6d
mov byte [esp + 0x1af], 0x6c
mov eax, 4
mov byte [esp + eax + 0x1ac], 0
add eax, 1
cmp eax, 8
jne 0x40f5d3
xor eax, eax
cmp eax, 8
jae 0x40f619
movzx edx, byte [esp + eax + 0x1ac]
mov edi, eax
add edi, 0xe8
mov ecx, 0x17
sub ecx, eax
and ecx, edx
xor edx, 0xffffffff
and edi, edx
or ecx, edi
add cl, 0x78
mov byte [esp + eax + 0x1ac], cl
add eax, 1
jmp 0x40f5e5
mov edi, dword [esp + 0x1ac]
xor ebx, ebx
cmp ebx, dword [0x44a890]
jb 0x40f634
mov ecx, 2
jmp 0x40f6bf
mov ecx, dword [0x44a894]
cmp dword [ecx + ebx*8], 0xae6e2b0b
sete dl
mov byte [esp + 0x2d], dl
test dl, 1
jne 0x40f64f
jmp 0x40f6ac
mov edx, dword [ecx + ebx*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x40f6ae
mov eax, dword [0x44a898]
xor ecx, ecx
lea ecx, [esp + 0xc0]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov eax, dword [esp + 0x398]
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.00439540
mov ecx, 1
jmp 0x40f6ae
xor ecx, ecx
test byte [esp + 0x2d], 1
jne 0x40f6bd
add ebx, 1
jmp 0x40f622
jmp 0x40f6bf
cmp ecx, 2
je 0x40f6c6
mov edi, eax
mov al, byte [esp + 0xb4]
mov byte [esp + 0x1b4], al
mov byte [esp + 0xb8], 0x44
mov byte [esp + 0xb9], 0x41
mov byte [esp + 0xba], 0x42
mov byte [esp + 0xbb], 3
mov eax, 4
mov byte [esp + eax + 0xb8], 0
add eax, 1
cmp eax, 6
jne 0x40f6f9
xor edx, edx
cmp edx, 6
jae 0x40f779
movzx eax, byte [esp + edx + 0xb8]
mov dword [esp + 0x37c], eax
mov ecx, edx
add ecx, 0x10
mov ebx, edx
add ebx, 0x10
and ebx, eax
mov dword [esp + 0x39c], edi
mov edi, ebx
and edi, 2
xor edi, 2
mov eax, ebx
and eax, 0xfd
imul eax, edi
mov edi, ebx
and edi, 2
or ebx, 2
imul ebx, edi
mov edi, dword [esp + 0x39c]
add ebx, eax
add ecx, dword [esp + 0x37c]
sub ecx, ebx
add cl, 0xb0
mov byte [esp + edx + 0xb8], cl
mov eax, edx
shl eax, 1
and eax, 2
xor edx, 1
add edx, eax
jmp 0x40f70b
mov eax, dword [esp + 0xb8]
cmp edi, eax
mov ebx, dword [esp + 0x24]
jne 0x40fc0b
mov eax, dword [esp + 0xc0]
add eax, 2
mov dword [esp], eax
call fcn.00436070
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0xc0]
mov edi, eax
and edi, 2
or eax, 2
add edi, eax
mov eax, dword [esp + 0x3e8]
mov dword [esp + 0x394], eax
mov al, byte [esp + 0x1b8]
mov byte [esp + 0x1fc], al
mov byte [esp + 0x1bc], 0x6f
mov byte [esp + 0x1bd], 0x6e
mov byte [esp + 0x1be], 0x6d
mov byte [esp + 0x1bf], 0x6c
mov eax, 4
mov byte [esp + eax + 0x1bc], 0
add eax, 1
cmp eax, 8
jne 0x40f7f4
xor eax, eax
cmp eax, 8
jae 0x40f83a
movzx edx, byte [esp + eax + 0x1bc]
mov ebx, eax
add ebx, 0xe8
mov ecx, 0x17
sub ecx, eax
and ecx, edx
xor edx, 0xffffffff
and ebx, edx
or ecx, ebx
add cl, 0x78
mov byte [esp + eax + 0x1bc], cl
add eax, 1
jmp 0x40f806
mov edx, dword [esp + 0x1bc]
xor ebx, ebx
mov ecx, 2
cmp ebx, dword [0x44a890]
jb 0x40f859
mov ebx, dword [esp + 0x24]
jmp 0x40f8ef
mov dword [esp + 0x60], edx
mov ecx, dword [0x44a894]
cmp dword [ecx + ebx*8], 0xae6e2b0b
sete dl
mov byte [esp + 0x2c], dl
test dl, 1
jne 0x40f878
jmp 0x40f8d0
mov edx, dword [ecx + ebx*8 + 4]
mov ecx, 2
cmp edx, dword [esp + 0x60]
je 0x40f8d2
mov eax, dword [0x44a898]
xor ecx, ecx
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x14
mov eax, dword [esp + 0x394]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0x2b
mov eax, dword [esp + 0x68]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], edi
mov dword [esp + 0x1c], 0
call fcn.00439540
mov ecx, 1
jmp 0x40f8d2
xor ecx, ecx
test byte [esp + 0x2c], 1
je 0x40f8e3
mov ebx, dword [esp + 0x24]
mov edx, dword [esp + 0x60]
jmp 0x40f8ef
add ebx, 1
mov edx, dword [esp + 0x60]
jmp 0x40f843
cmp ecx, 2
je 0x40f8f6
mov edx, eax
cmp edx, 0
jl 0x40fbff
mov edi, dword [esp + 0x3b4]
mov dword [esp], edi
call fcn.004127e0
mov ebx, eax
mov dword [esp + 0x38c], ebx
sub ebx, 0xffffffff
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x40f932
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
xor ecx, ecx
mov dword [esp + 0x390], eax
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
call fcn.0040a8a0
mov ecx, dword [esp + 0x68]
mov edi, ecx
add edi, 4
mov eax, dword [ecx + 4]
movzx ecx, word [ecx]
shr ecx, 1
sub ecx, 1
shl ecx, 1
add eax, ecx
mov ebx, eax
jmp 0x40f977
cmp ebx, dword [edi]
jb 0x40f98d
mov cx, word [ebx]
movzx ecx, cx
cmp ecx, 0x5c
jne 0x40f988
jmp 0x40f991
add ebx, 0xfffffffe
jmp 0x40f977
mov ebx, eax
jmp 0x40f991
mov eax, dword [edi]
xor ecx, ecx
sub ecx, eax
add ebx, ecx
sar ebx, 1
mov eax, ebx
add eax, dword [esp + 0x38c]
mov ecx, eax
and ecx, 1
or eax, 1
add eax, ecx
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x40f9c4
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
mov ecx, dword [edi]
mov dword [esp + 0x384], eax
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
call fcn.00412870
mov dword [esp], eax
mov ebx, dword [esp + 0x390]
mov dword [esp + 4], ebx
call fcn.00409d40
mov edi, eax
mov dword [esp], ebx
call fcn.00408220
jmp 0x40fa04
mov ebx, dword [esp + 0x384]
sub edi, ebx
sar edi, 1
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x40fa2a
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
mov dword [esp], ebx
mov dword [esp + 0x26c], eax
mov dword [esp + 4], eax
call fcn.004345b0
mov dword [esp], ebx
call fcn.00408220
mov ebx, dword [esp + 0x3bc]
mov dword [esp], ebx
call fcn.004127e0
mov edi, eax
add edi, 1
mov ecx, 2
mov eax, edi
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x40fa79
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
xor ecx, ecx
mov dword [esp + 0x258], eax
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
call fcn.0040a8a0
lea ecx, [esp + 0x508]
mov dword [esp], 1
call fcn.00408e20
sub esp, 4
xor edi, edi
mov ebx, dword [esp + 0x2a0]
mov dword [esp], ebx
call fcn.00401b80
cmp edi, eax
jb 0x40fad2
jmp 0x40fbbf
mov dword [esp], ebx
mov dword [esp + 4], edi
call fcn.00401b60
mov dword [esp], eax
call fcn.004018e0
mov ebx, eax
cmp ebx, 0
jne 0x40faf2
jmp 0x40fba8
mov dword [esp], ebx
call fcn.004127e0
add eax, 1
mov ecx, 2
mov dword [esp + 0x380], eax
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x40fb1a
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
mov dword [esp + 0x36c], eax
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x380]
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0
call fcn.0040a8a0
lea eax, [esp + 0x508]
xor ecx, ecx
mov dword [esp], eax
mov eax, dword [esp + 0x258]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x26c]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x36c]
mov ebx, eax
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x3b8]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x3c0]
mov dword [esp + 0x14], eax
mov dword [esp + 0x18], 0
call fcn.0041d570
mov dword [esp], ebx
call fcn.00408220
jmp 0x40fba6
jmp 0x40fba8
xor eax, eax
sub eax, edi
add eax, 0xffffffff
xor edi, edi
sub edi, eax
mov ebx, dword [esp + 0x2a0]
jmp 0x40fac1
mov eax, dword [esp + 0x258]
mov dword [esp], eax
call fcn.00408220
jmp 0x40fbd0
mov eax, dword [esp + 0x26c]
mov dword [esp], eax
call fcn.00408220
jmp 0x40fbe1
lea ecx, [esp + 0x508]
call fcn.00409890
lea ecx, [esp + 0x508]
call fcn.00408f00
mov ebx, dword [esp + 0x24]
jmp 0x40fbff
mov eax, dword [esp + 0x68]
mov dword [esp], eax
call fcn.00436100
lea ecx, [esp + 0x3e8]
call fcn.00412930
jmp 0x410a62
mov al, byte [esp + 0xb0]
mov byte [esp + 0x1c4], al
mov byte [esp + 0x2cc], 0x5c
mov byte [esp + 0x2cd], 0xcb
mov eax, 2
mov byte [esp + eax + 0x2cc], 0
add eax, 1
cmp eax, 5
jne 0x40fc3f
xor eax, eax
cmp eax, 5
jae 0x40fc7f
mov dl, byte [esp + eax + 0x2cc]
mov edi, eax
xor edi, 0xcd
mov ecx, eax
shl ecx, 1
and ecx, 0x64
sub ecx, edi
xor cl, dl
add cl, 1
mov byte [esp + eax + 0x2cc], cl
add eax, 1
jmp 0x40fc51
lea eax, [esp + 0x2cc]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov dword [esp + 0x254], eax
mov al, byte [esp + 0xac]
mov byte [esp + 0x1c8], al
mov byte [esp + 0x2c4], 0xa6
mov byte [esp + 0x2c5], 0x39
mov eax, 2
mov byte [esp + eax + 0x2c4], 0
add eax, 1
cmp eax, 8
jne 0x40fcc0
xor eax, eax
cmp eax, 8
jae 0x40fd0d
mov dl, byte [esp + eax + 0x2c4]
mov edi, eax
and edi, 0xf6
xor edi, 0xf6
mov ecx, eax
and ecx, 9
sub ecx, edi
xor cl, dl
add cl, 0xce
mov byte [esp + eax + 0x2c4], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x40fcd2
lea eax, [esp + 0x2c4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.004018a0
mov edi, eax
mov edx, dword [esp + 0x254]
test edx, edx
sete al
test edi, edi
sete cl
or al, cl
test al, 1
jne 0x40fd3f
jmp 0x40fd44
jmp 0x41051a
mov dword [esp], edx
call fcn.004127e0
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffff
xor ebx, ebx
sub ebx, ecx
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x40fd6f
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
xor ecx, ecx
mov dword [esp + 0x29c], eax
mov dword [esp], eax
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x254]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a8a0
mov dword [esp], edi
call fcn.004127e0
mov ebx, eax
sub ebx, 0x19599e70
add ebx, 1
add ebx, 0x19599e70
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x40fdd0
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
xor ecx, ecx
mov dword [esp + 0x298], eax
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
call fcn.0040a8a0
mov al, byte [esp + 0xa8]
mov byte [esp + 0x1cc], al
mov byte [esp + 0x2bc], 0xfe
mov byte [esp + 0x2bd], 0x5b
mov eax, 2
mov byte [esp + eax + 0x2bc], 0
add eax, 1
cmp eax, 6
jne 0x40fe1c
xor eax, eax
cmp eax, 6
jae 0x40fe50
mov cl, byte [esp + eax + 0x2bc]
mov dl, al
add dl, 0xef
xor dl, cl
add dl, 0x55
mov byte [esp + eax + 0x2bc], dl
add eax, 1
jmp 0x40fe2e
lea eax, [esp + 0x2bc]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov edi, eax
mov dword [esp + 0x5c], 0
cmp edi, 0
je 0x40fec9
mov dword [esp], edi
call fcn.004127e0
mov ebx, eax
sub ebx, 0xffffffff
mov ecx, 2
mov eax, ebx
mul ecx
seto cl
jmp 0x40fe91
jmp 0x40fe93
mov edx, 0xffffffff
test cl, 1
jne 0x40fe9f
mov edx, eax
mov dword [esp], edx
call fcn.00408210
xor ecx, ecx
mov dword [esp + 0x5c], eax
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
call fcn.0040a8a0
jmp 0x40fec7
jmp 0x40fec9
mov al, byte [esp + 0xa4]
mov byte [esp + 0x1d0], al
mov byte [esp + 0x2b4], 0xae
mov byte [esp + 0x2b5], 0x41
mov eax, 2
mov byte [esp + eax + 0x2b4], 0
add eax, 1
cmp eax, 6
jne 0x40feec
xor eax, eax
cmp eax, 6
jae 0x40ff61
movzx edx, byte [esp + eax + 0x2b4]
mov ecx, eax
add ecx, 1
mov edi, eax
xor edi, 0xffffffff
or edi, 0x45458410
add edi, ecx
mov ecx, eax
or ecx, 0x45458410
mov ebx, ecx
and ebx, edi
shl ebx, 1
xor ecx, edi
add ecx, ebx
xor ecx, edx
mov edx, ecx
xor edx, 0x508be60b
shl ecx, 1
and ecx, 0x5ee833e8
sub ecx, edx
mov edx, ecx
shl edx, 1
and edx, 2
xor ecx, 1
add ecx, 0xba
add ecx, edx
mov byte [esp + eax + 0x2b4], cl
add eax, 1
jmp 0x40fefe
lea eax, [esp + 0x2b4]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov edi, eax
mov dword [esp + 0x58], 0
cmp edi, 0
je 0x40ffd2
mov dword [esp], edi
call fcn.004127e0
mov ebx, eax
add ebx, 1
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x40ffac
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
xor ecx, ecx
mov dword [esp + 0x58], eax
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
call fcn.0040a8a0
mov al, byte [esp + 0xa0]
mov byte [esp + 0x1d4], al
mov byte [esp + 0x224], 0x85
mov byte [esp + 0x225], 0xa9
mov byte [esp + 0x226], 0x22
mov eax, 3
mov byte [esp + eax + 0x224], 0
add eax, 1
cmp eax, 8
jne 0x40fffd
xor eax, eax
cmp eax, 8
jae 0x410067
movzx edx, byte [esp + eax + 0x224]
mov ecx, 0xfd1abc37
sub ecx, eax
mov edi, 0xfd1abc37
sub edi, eax
mov ebx, 0xfd1abc37
sub ebx, eax
or edi, ebx
xor edi, 0xffffffff
mov ebx, edx
shl ebx, 1
xor ebx, 0xffffffff
add ebx, edx
or ebx, edi
mov edi, ebx
add edi, 1
xor ebx, 0xffffffff
or ecx, ebx
or ecx, edx
add ecx, edi
mov edx, ecx
shl edx, 1
xor edx, 0xffffffff
add ecx, edx
add cl, 0x18
mov byte [esp + eax + 0x224], cl
add eax, 1
jmp 0x41000f
lea eax, [esp + 0x224]
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401970
xor edi, edi
cmp eax, 0
mov ebx, 0
je 0x41040a
mov dword [esp + 0x3ac], eax
mov dword [esp], eax
call fcn.00401b80
mov edi, eax
mov ecx, 0xc
mov eax, edi
mul ecx
seto dl
add eax, 4
setb cl
or dl, cl
mov ecx, 0xffffffff
test dl, 1
jne 0x4100be
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
mov ebx, eax
mov dword [ebx], edi
add ebx, 4
cmp edi, 0
mov dword [esp + 0x54], ebx
mov dword [esp + 0x280], edi
je 0x4100ff
imul eax, edi, 0xc
mov edi, ebx
add edi, eax
mov ecx, ebx
call fcn.00412940
add ebx, 0xc
cmp ebx, edi
jne 0x4100e4
mov ebx, dword [esp + 0x54]
mov edi, dword [esp + 0x280]
jmp 0x4100ff
xor ecx, ecx
jmp 0x410103
cmp ecx, edi
mov eax, dword [esp + 0x3ac]
jb 0x410113
jmp 0x41040a
mov dword [esp], eax
mov dword [esp + 0x278], ecx
mov dword [esp + 4], ecx
call fcn.00401b90
mov dword [esp + 0x50], eax
mov al, byte [esp + 0x9c]
mov byte [esp + 0x1d8], al
mov byte [esp + 0x21c], 0xe5
mov byte [esp + 0x21d], 0x1b
mov byte [esp + 0x21e], 0xb6
mov eax, 3
mov byte [esp + eax + 0x21c], 0
add eax, 1
cmp eax, 5
jne 0x410155
xor edi, edi
cmp edi, 5
jae 0x410195
mov dl, byte [esp + edi + 0x21c]
movzx ebx, dl
mov eax, edi
add eax, 0xfe3d6f9e
mov ecx, eax
and ecx, ebx
shl ecx, 1
sub eax, ecx
add al, dl
add al, 0xea
mov byte [esp + edi + 0x21c], al
add edi, 1
jmp 0x410167
lea eax, [esp + 0x21c]
mov ecx, dword [esp + 0x50]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov dword [esp + 0x3a4], eax
mov al, byte [esp + 0x98]
mov byte [esp + 0x1dc], al
mov byte [esp + 0x214], 0xff
mov byte [esp + 0x215], 0xd5
mov byte [esp + 0x216], 0x5a
mov eax, 3
mov byte [esp + eax + 0x214], 0
add eax, 1
cmp eax, 6
jne 0x4101de
xor eax, eax
cmp eax, 6
jae 0x410212
mov cl, byte [esp + eax + 0x214]
mov dl, al
add dl, 0xef
xor dl, cl
add dl, 0x55
mov byte [esp + eax + 0x214], dl
add eax, 1
jmp 0x4101f0
lea eax, [esp + 0x214]
mov ecx, dword [esp + 0x50]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov dword [esp + 0x3a0], eax
mov al, byte [esp + 0x8c]
mov byte [esp + 0x1e0], al
mov byte [esp + 0x90], 0x90
mov byte [esp + 0x91], 0x9b
mov byte [esp + 0x92], 0x84
mov byte [esp + 0x93], 0x21
mov eax, 4
mov byte [esp + eax + 0x90], 0
add eax, 1
cmp eax, 7
jne 0x410263
xor eax, eax
cmp eax, 7
jae 0x4102d9
movzx edx, byte [esp + eax + 0x90]
mov ecx, eax
add ecx, 0x9a906089
mov ebx, 0x256f9f76
sub ebx, eax
and ebx, 0x3672f995
and ecx, 0xc98d066a
xor edx, 0x3672f995
or ebx, ecx
mov ecx, edx
and ecx, ebx
shl ecx, 1
add edx, ebx
sub ecx, edx
mov edi, ecx
shl edi, 1
and edi, 0x5c
xor ecx, 0xfb2e1d51
add ecx, 1
mov edx, ecx
sub edx, edi
shl ecx, 1
and ecx, 2
xor edx, 1
add edx, ecx
mov byte [esp + eax + 0x90], dl
add eax, 1
jmp 0x410275
lea eax, [esp + 0x90]
mov ecx, dword [esp + 0x50]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004019d0
xor ebx, ebx
cmp eax, 0
setg byte [esp + 0x2e]
mov al, byte [esp + 0x80]
mov byte [esp + 0x1e4], al
mov byte [esp + 0x84], 0xc1
mov byte [esp + 0x85], 0xd0
mov byte [esp + 0x86], 0xc7
mov byte [esp + 0x87], 0x49
mov eax, 4
mov byte [esp + eax + 0x84], 0
add eax, 1
cmp eax, 8
jne 0x41032d
xor eax, eax
cmp eax, 8
jae 0x410389
movzx edx, byte [esp + eax + 0x84]
mov edi, eax
xor edi, 0x9c412bed
mov ecx, eax
shl ecx, 1
and ecx, 0xc77da824
sub ecx, edi
xor ecx, edx
mov edx, ecx
shl edx, 1
and edx, 0x40
mov edi, ecx
shl edi, 1
and edi, 0x40
add ecx, 0xa0
sub ecx, edi
add ecx, edx
add cl, 1
mov byte [esp + eax + 0x84], cl
add eax, 1
jmp 0x41033f
lea eax, [esp + 0x84]
mov ecx, dword [esp + 0x50]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004019d0
xor edx, edx
cmp eax, 0
setg dl
imul eax, dword [esp + 0x278], 0xc
mov edi, dword [esp + 0x54]
mov ecx, edi
add ecx, eax
mov eax, dword [esp + 0x3a4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x3a0]
mov dword [esp], eax
and edx, 1
mov dword [esp + 0xc], edx
mov al, byte [esp + 0x2e]
mov bl, al
and ebx, 1
mov dword [esp + 8], ebx
mov ebx, edi
call fcn.00412960
sub esp, 0x10
mov ecx, dword [esp + 0x278]
mov eax, ecx
and eax, 1
shl eax, 1
xor ecx, 1
add ecx, eax
mov edi, dword [esp + 0x280]
jmp 0x410103
mov eax, dword [esp + 0x298]
mov dword [esp + 0x3d8], eax
mov eax, dword [esp + 0x29c]
mov dword [esp + 0x3dc], eax
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x3e0], eax
mov eax, dword [esp + 0x58]
mov dword [esp + 0x3e4], eax
lea ecx, [esp + 0x480]
mov dword [esp], 2
call fcn.00408e20
sub esp, 4
lea eax, [esp + 0x480]
lea ecx, [esp + 0x3d8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], edi
call fcn.004130b0
lea ecx, [esp + 0x480]
call fcn.00409890
cmp ebx, 0
je 0x4104ba
mov ecx, ebx
mov ebx, ecx
add ebx, 0xfffffffc
imul eax, dword [ecx - 4], 0xc
mov edi, ecx
add edi, eax
mov eax, ecx
cmp ecx, edi
je 0x4104b2
mov dword [esp + 0x54], eax
jmp 0x4104a0
add edi, 0xfffffff4
mov ecx, edi
call fcn.00412ac0
cmp edi, dword [esp + 0x54]
jne 0x4104a0
jmp 0x4104b2
mov dword [esp], ebx
call fcn.00408220
mov ebx, dword [esp + 0x24]
jmp 0x4104c0
mov eax, dword [esp + 0x298]
mov dword [esp], eax
call fcn.00408220
jmp 0x4104d1
mov eax, dword [esp + 0x29c]
mov dword [esp], eax
call fcn.00408220
mov eax, dword [esp + 0x58]
jmp 0x4104e6
cmp dword [esp + 0x5c], 0
je 0x4104ff
mov eax, dword [esp + 0x5c]
mov dword [esp], eax
call fcn.00408220
mov eax, dword [esp + 0x58]
jmp 0x4104ff
cmp eax, 0
je 0x41050e
mov dword [esp], eax
call fcn.00408220
jmp 0x41050e
lea ecx, [esp + 0x480]
call fcn.00408f00
jmp 0x410a62
mov al, byte [esp + 0x7c]
mov byte [esp + 0x1e8], al
mov byte [esp + 0x2ac], 0x80
mov byte [esp + 0x2ad], 0x11
mov eax, 2
mov byte [esp + eax + 0x2ac], 0
add eax, 1
cmp eax, 6
jne 0x41053f
xor eax, eax
cmp eax, 6
jae 0x410573
mov cl, byte [esp + eax + 0x2ac]
mov dl, al
add dl, 0x84
xor dl, cl
add dl, 0x6c
mov byte [esp + eax + 0x2ac], dl
add eax, 1
jmp 0x410551
lea eax, [esp + 0x2ac]
mov ecx, dword [esp + 0x20]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov dword [esp + 0x25c], eax
mov al, byte [esp + 0x78]
mov byte [esp + 0x1ec], al
mov byte [esp + 0x2a4], 0x1a
mov byte [esp + 0x2a5], 0xeb
mov eax, 2
mov byte [esp + eax + 0x2a4], 0
add eax, 1
cmp eax, 6
jne 0x4105b1
xor eax, eax
cmp eax, 6
jae 0x410621
movzx edx, byte [esp + eax + 0x2a4]
mov ecx, eax
add ecx, 0x27
mov edi, edx
xor edi, 0xffffffff
and ecx, edi
mov edi, 0xd8
sub edi, eax
and edi, edx
or ecx, edi
add cl, 0x3d
mov byte [esp + eax + 0x2a4], cl
mov edx, eax
xor edx, 0xfffffffe
mov ecx, eax
or ecx, 1
and ecx, edx
mov edx, ecx
and edx, 2
xor edx, 2
mov edi, ecx
and edi, 5
imul edi, edx
mov edx, ecx
and edx, 2
or ecx, 2
imul ecx, edx
add ecx, edi
xor eax, 1
add eax, ecx
jmp 0x4105c3
lea eax, [esp + 0x2a4]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x20]
mov dword [esp], eax
call fcn.004018a0
mov edi, eax
mov edx, dword [esp + 0x25c]
test edx, edx
sete al
test edi, edi
sete cl
or al, cl
test al, 1
jne 0x410653
jmp 0x410658
jmp 0x410a60
mov dword [esp], edx
call fcn.004127e0
mov ebx, eax
add ebx, 1
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41067d
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
xor ecx, ecx
mov dword [esp + 0x290], eax
mov dword [esp], eax
mov dword [esp + 4], ebx
mov eax, dword [esp + 0x25c]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0
call fcn.0040a8a0
mov dword [esp], edi
call fcn.004127e0
xor ecx, ecx
sub ecx, eax
add ecx, 0xffffffff
xor ebx, ebx
sub ebx, ecx
mov ecx, 2
mov eax, ebx
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x4106d8
mov ecx, eax
mov dword [esp], ecx
call fcn.00408210
xor ecx, ecx
mov dword [esp + 0x284], eax
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mov dword [esp + 0xc], 0
call fcn.0040a8a0
mov al, byte [esp + 0x74]
mov byte [esp + 0x1f0], al
mov byte [esp + 0x20c], 0x33
mov byte [esp + 0x20d], 0x3f
mov byte [esp + 0x20e], 0x86
mov eax, 3
mov byte [esp + eax + 0x20c], 0
add eax, 1
cmp eax, 8
jne 0x410729
xor eax, eax
mov ebx, dword [esp + 0x24]
cmp eax, 8
jae 0x410761
mov cl, byte [esp + eax + 0x20c]
mov dl, al
add dl, 0xa1
xor dl, cl
add dl, 0xdb
mov byte [esp + eax + 0x20c], dl
add eax, 1
jmp 0x41073f
lea eax, [esp + 0x20c]
mov ecx, dword [ebp + 8]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00401970
mov ecx, eax
xor eax, eax
cmp ecx, 0
mov edi, 0
je 0x41099d
mov dword [esp + 0x274], ecx
mov dword [esp], ecx
call fcn.00401b80
mov edi, eax
mov ecx, 8
mov eax, edi
mul ecx
seto dl
add eax, 4
setb cl
and dl, dl
xor dl, 0xff
and cl, cl
xor cl, 0xff
xor cl, 0xff
xor dl, 0xff
or cl, dl
jmp 0x4107c0
mov edx, 0xffffffff
test cl, 1
jne 0x4107cc
mov edx, eax
mov dword [esp], edx
call fcn.00408210
mov dword [eax], edi
add eax, 4
cmp edi, 0
mov dword [esp + 0x64], edi
mov dword [esp + 0x28], eax
je 0x41080f
mov ecx, edi
shl ecx, 3
mov edi, eax
add edi, ecx
mov ebx, eax
jmp 0x4107f3
mov ecx, ebx
call fcn.00412af0
add ebx, 8
cmp ebx, edi
jne 0x4107f3
mov ebx, dword [esp + 0x24]
mov edi, dword [esp + 0x64]
mov eax, dword [esp + 0x28]
jmp 0x41080f
xor edx, edx
mov ecx, dword [esp + 0x274]
jmp 0x41081a
cmp edx, edi
jb 0x410823
jmp 0x41099d
mov dword [esp], ecx
mov dword [esp + 0x268], edx
mov dword [esp + 4], edx
call fcn.00401b90
mov dword [esp + 0x260], eax
mov al, byte [esp + 0x70]
mov byte [esp + 0x1f4], al
mov byte [esp + 0x34], 0xeb
mov byte [esp + 0x35], 0xf1
mov byte [esp + 0x36], 6
mov eax, 3
mov byte [esp + eax + 0x34], 0
add eax, 1
cmp eax, 4
jne 0x41085c
xor edi, edi
cmp edi, 4
jae 0x4108be
movzx edx, byte [esp + edi + 0x34]
mov ecx, edi
and ecx, 0x66454241
mov ebx, edi
and ebx, 0x99babdbe
mov eax, edi
xor eax, 0x66454241
add eax, edi
sub eax, ebx
mov ebx, dword [esp + 0x24]
add ecx, eax
xor ecx, edx
mov eax, ecx
xor eax, 0xff5a4b46
shl ecx, 1
and ecx, 0x14b6972
sub ecx, eax
mov eax, ecx
shl eax, 1
and eax, 2
xor ecx, 1
add ecx, eax
mov byte [esp + edi + 0x34], cl
add edi, 1
jmp 0x41086b
lea eax, [esp + 0x34]
mov ecx, dword [esp + 0x260]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov dword [esp + 0x388], eax
mov al, byte [esp + 0x6c]
mov byte [esp + 0x1f8], al
mov byte [esp + 0x30], 0xc5
mov byte [esp + 0x31], 0xab
mov byte [esp + 0x32], 0x22
mov eax, 3
mov edi, dword [esp + 0x64]
mov byte [esp + eax + 0x30], 0
add eax, 1
cmp eax, 4
jne 0x4108ff
xor eax, eax
cmp eax, 4
jae 0x410946
mov dl, byte [esp + eax + 0x30]
mov edi, eax
shl edi, 1
and edi, 0xf0
mov ecx, eax
xor ecx, 0xf8
add ecx, edi
mov edi, dword [esp + 0x64]
xor cl, dl
add cl, 0x28
mov byte [esp + eax + 0x30], cl
mov ecx, eax
shl ecx, 1
and ecx, 2
xor eax, 1
add eax, ecx
jmp 0x41090e
lea eax, [esp + 0x30]
mov ecx, dword [esp + 0x260]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004018a0
mov edx, dword [esp + 0x268]
shl edx, 3
mov ecx, dword [esp + 0x28]
add ecx, edx
mov dword [esp], eax
mov eax, dword [esp + 0x388]
mov dword [esp + 4], eax
call fcn.00412b00
sub esp, 8
mov edx, dword [esp + 0x268]
add edx, 1
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x274]
jmp 0x41081a
mov dword [esp + 0x28], eax
lea ecx, [esp + 0x3f8]
mov dword [esp], 3
call fcn.00408e20
sub esp, 4
lea eax, [esp + 0x3f8]
mov dword [esp], eax
mov eax, dword [esp + 0x290]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x284]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], edi
call fcn.0041b860
lea ecx, [esp + 0x3f8]
call fcn.00409890
mov ecx, dword [esp + 0x28]
cmp ecx, 0
je 0x410a32
mov ebx, ecx
add ebx, 0xfffffffc
mov eax, dword [ecx - 4]
shl eax, 3
mov edi, ecx
add edi, eax
cmp ecx, edi
je 0x410a24
jmp 0x410a12
add edi, 0xfffffff8
mov ecx, edi
call fcn.00412bb0
cmp edi, dword [esp + 0x28]
jne 0x410a12
jmp 0x410a24
mov dword [esp], ebx
call fcn.00408220
mov ebx, dword [esp + 0x24]
jmp 0x410a32
jmp 0x410a34
mov eax, dword [esp + 0x290]
mov dword [esp], eax
call fcn.00408220
jmp 0x410a45
mov eax, dword [esp + 0x284]
mov dword [esp], eax
call fcn.00408220
lea ecx, [esp + 0x3f8]
call fcn.00408f00
jmp 0x410a62
jmp 0x410a64
add esi, 0xc3a66fb5
add esi, 1
sub esi, 0xc3a66fb5
jmp 0x40e051
and al, 1
movzx eax, al
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret