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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0xbc8
mov eax, dword [ebp + 8]
mov dword [esp + 0xbbc], eax
mov dword [esp + 0xbb8], 0
lea ecx, [esp + 0xba0]
call fcn.004bb4d0
lea ecx, [esp + 0xb88]
mov dword [esp + 0x214], eax
call fcn.004bb4d0
mov dword [esp + 0x210], eax
mov eax, esp
mov dword [eax + 8], 0
mov dword [eax + 4], 0
call fcn.0041b2d0
lea ecx, [esp + 0xb40]
call fcn.0050dc70
sub esp, 0xc
mov dword [esp + 0x20c], eax
lea ecx, [esp + 0xb40]
call fcn.005231d0
mov byte [esp + 0x20b], al
mov al, byte [esp + 0x20b]
test al, 1
jne 0x41864a
jmp 0x41862f
mov dword [esp + 0xbc0], 0xfffffffd
mov dword [esp + 0xb3c], 1
jmp 0x41aef6
lea ecx, [esp + 0xb40]
call fcn.00524f60
mov byte [esp + 0x20a], al
mov al, byte [esp + 0x20a]
and al, 1
mov byte [0x88ab88], al
lea ecx, [esp + 0xb30]
call fcn.004aae10
mov dword [esp + 0x204], eax
lea ecx, [esp + 0xb40]
call fcn.004ee860
mov dword [esp + 0x200], eax
mov eax, dword [esp + 0x200]
mov dword [esp + 0xb2c], eax
cmp dword [esp + 0xbbc], 0
je 0x418e71
mov eax, 0x21
mov ecx, dword [esp + 0xbbc]
movsx ecx, byte [ecx]
cmp eax, ecx
jne 0x418e71
mov eax, dword [esp + 0xbbc]
movsx eax, byte [eax + 1]
mov dword [esp], eax
call fcn.00439707
mov dword [esp + 0x1fc], eax
mov eax, 0x78
mov ecx, dword [esp + 0x1fc]
cmp eax, ecx
jne 0x418e71
mov eax, 0x3a
mov ecx, dword [esp + 0xbbc]
movsx ecx, byte [ecx + 2]
cmp eax, ecx
jne 0x418e71
lea ecx, [esp + 0xb10]
call fcn.004bb4d0
mov dword [esp + 0x1f8], eax
mov eax, dword [esp + 0xbbc]
add eax, 3
mov dword [esp + 0xbbc], eax
mov al, 0
mov ecx, dword [esp + 0xbbc]
cmp byte [ecx], 0
mov byte [esp + 0x1f7], al
je 0x418765
mov eax, dword [esp + 0xbbc]
movsx eax, byte [eax]
cmp eax, 0x20
setne cl
mov byte [esp + 0x1f7], cl
mov al, byte [esp + 0x1f7]
test al, 1
jne 0x418779
jmp 0x4187b0
mov eax, dword [esp + 0xbbc]
mov cl, byte [eax]
movsx eax, cl
mov edx, esp
mov dword [edx], eax
lea ecx, [esp + 0xb10]
call fcn.00407000
sub esp, 4
mov eax, dword [esp + 0xbbc]
add eax, 1
mov dword [esp + 0xbbc], eax
jmp 0x418733
jmp 0x4187b5
mov al, 0
mov ecx, dword [esp + 0xbbc]
cmp byte [ecx], 0
mov byte [esp + 0x1f6], al
je 0x4187f1
mov eax, dword [esp + 0xbbc]
movsx eax, byte [eax]
push ecx
mov ecx, 0xc47722d7
xor ecx, 0xc47722f7
cmp eax, ecx
pop ecx
sete cl
mov byte [esp + 0x1f6], cl
mov al, byte [esp + 0x1f6]
test al, 1
jne 0x418805
jmp 0x41881d
mov eax, dword [esp + 0xbbc]
add eax, 1
mov dword [esp + 0xbbc], eax
jmp 0x4187b5
lea ecx, [esp + 0xb10]
call fcn.004ddfd0
mov dword [esp], eax
call fcn.00438863
mov dword [esp + 0x1f0], eax
mov eax, dword [esp + 0x1f0]
mov dword [esp + 0xb0c], eax
mov dword [esp + 0xb08], 0
mov ecx, dword [esp + 0xb2c]
mov ecx, dword [ecx + 0xc]
mov ecx, dword [ecx + 4]
mov dword [esp + 0xb04], ecx
mov dword [esp + 0xb00], 0
cmp dword [esp + 0xb04], 0
je 0x418dfa
mov eax, 0
mov ecx, dword [esp + 0xb0c]
mov edx, dword [esp + 0xb00]
mov esi, eax
sub esi, edx
mov edx, eax
sub edx, 1
add esi, edx
sub eax, esi
cmp ecx, eax
jne 0x418d30
mov eax, 0xffffffff
mov ecx, dword [esp + 0xb04]
mov ecx, dword [ecx]
xor ecx, 0xffffffff
mov edx, eax
xor edx, 0xc905ceab
xor edx, 0xc905c6ab
xor eax, 0x6a751545
or ecx, edx
or eax, 0x6a751545
xor ecx, 0xffffffff
and ecx, eax
cmp ecx, 0
jne 0x4188f3
jmp 0x418dfa
mov eax, dword [esp + 0xb04]
mov ecx, esp
mov dword [ecx + 4], eax
lea eax, [esp + 0xae8]
mov dword [ecx], eax
lea ecx, [esp + 0xb40]
call fcn.004de020
sub esp, 8
lea ecx, [esp + 0xae8]
call fcn.0051a8c0
cmp eax, 0
je 0x418d14
cmp dword [0x87f1f4], 0
je 0x41897b
lea eax, [esp + 0x8e0]
mov ecx, dword [0x87e19c]
mov edx, esp
mov dword [edx + 4], eax
mov dword [edx + 8], 0x104
call fcn.0041b2e0
call ecx
sub esp, 0xc
mov dword [esp + 0x1ec], eax
mov eax, dword [esp + 0x1ec]
mov dword [esp + 0x1e8], eax
jmp 0x418a28
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
mov edx, eax
add edx, 0x1ee9652a
sub edx, 1
sub edx, 0x1ee9652a
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x4189ca
jmp 0x41af29
call fcn.0041b2f0
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 0x7bf32b1c
sub edx, 1
add edx, 0x7bf32b1c
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x418a17
jmp 0x41af29
mov eax, 0
mov dword [esp + 0x1e8], eax
jmp 0x418a28
mov eax, dword [esp + 0x1e8]
cmp eax, 0
jne 0x418a4a
mov dword [esp + 0xb3c], 6
jmp 0x418d1f
lea eax, [esp + 0x8e0]
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x8c8]
call fcn.00405440
sub esp, 4
mov dword [esp + 0x1e4], eax
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 0xe136b795
sub edx, 1
add edx, 0xe136b795
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x418ab8
jmp 0x41af2e
mov eax, 0
call fcn.0041b300
mov edx, dword [0x88c654]
add eax, 0xffffffff
mov esi, ecx
add esi, eax
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x418b02
jmp 0x41af2e
lea ecx, [esp + 0x8b0]
call fcn.00468450
mov dword [esp + 0x1e0], eax
mov eax, 0x4374a4
mov eax, esp
mov dword [eax], 0x22
lea ecx, [esp + 0x8b0]
call fcn.004de6f0
sub esp, 4
mov eax, 0x4374b0
mov eax, esp
lea ecx, [esp + 0x8c8]
mov dword [eax], ecx
lea ecx, [esp + 0x8b0]
call fcn.00500520
sub esp, 4
mov dword [esp + 0x1dc], eax
mov eax, esp
call fcn.0041b310
lea ecx, [esp + 0x8b0]
call fcn.004de6f0
sub esp, 4
mov eax, 0x2000
mov eax, esp
mov dword [eax], 0x20
lea ecx, [esp + 0x8b0]
call fcn.004de6f0
sub esp, 4
lea eax, [esp + 0x898]
mov ecx, 0
mov edx, dword [esp + 0xbbc]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0
mov dword [esp + 0x1d8], ecx
call fcn.0042aab0
mov eax, esp
lea ecx, [esp + 0x898]
mov dword [eax], ecx
lea ecx, [esp + 0x8b0]
call fcn.00500520
sub esp, 4
mov dword [esp + 0x1d4], eax
lea ecx, [esp + 0x898]
call fcn.004054e0
lea ecx, [esp + 0x870]
call fcn.00525110
mov dword [esp + 0x1d0], eax
lea ecx, [esp + 0x870]
mov eax, esp
lea edx, [esp + 0x8c8]
mov dword [eax], edx
call fcn.004d5080
sub esp, 4
mov dword [esp + 0x1cc], eax
mov eax, dword [0x88ab84]
mov dword [esp + 0x888], eax
lea ecx, [esp + 0xae8]
call fcn.0051a8c0
mov ecx, esp
mov dword [ecx], 0
lea ecx, [esp + 0xae8]
mov dword [esp + 0x1c8], eax
call fcn.004981f0
sub esp, 4
mov dword [esp + 0x1c4], eax
mov eax, esp
lea ecx, [esp + 0x870]
mov dword [eax + 0xc], ecx
mov ecx, dword [esp + 0x1c8]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x1c4]
call fcn.0041b320
mov dword [eax + 8], 1
lea ecx, [esp + 0x628]
call fcn.004b0860
sub esp, 0x10
mov dword [esp + 0x1c0], eax
lea ecx, [esp + 0x8b0]
call fcn.00407ca0
lea ecx, [esp + 0x628]
mov edx, 0xe66608aa
pushfd
xor edx, 0xe66608aa
popfd
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 0
mov dword [esp + 0x1bc], edx
call fcn.00475220
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x1b8]
mov dword [esp + 0xb08], eax
lea ecx, [esp + 0x628]
call fcn.005091c0
lea ecx, [esp + 0x870]
call fcn.0051ca50
lea ecx, [esp + 0x8b0]
call fcn.004054e0
lea ecx, [esp + 0x8c8]
call fcn.004054e0
mov dword [esp + 0xb3c], 6
lea ecx, [esp + 0xae8]
call fcn.00551e20
jmp 0x418dfa
mov eax, 0
call fcn.0041b330
mov edx, dword [0x88c654]
sub eax, 1
mov esi, ecx
add esi, eax
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x418d79
jmp 0x41af33
mov eax, dword [0x88c650]
call fcn.0041b340
mov edx, eax
sub edx, 0xbc63e6fb
sub edx, 1
add edx, 0xbc63e6fb
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x418dc5
jmp 0x41af33
jmp 0x418dca
mov eax, 0
mov ecx, dword [esp + 0xb04]
mov ecx, dword [ecx + 0x10]
mov dword [esp + 0xb04], ecx
mov ecx, dword [esp + 0xb00]
sub eax, 1
sub ecx, eax
mov dword [esp + 0xb00], ecx
jmp 0x418870
cmp dword [0x87f940], 0
je 0x418e60
mov eax, dword [0x87e5f8]
mov ecx, dword [esp + 0xb08]
mov edx, dword [sym.imp.KERNEL32.dll_GetCurrentProcess]
mov dword [esp + 0x1b4], eax
mov dword [esp + 0x1b0], ecx
call edx
mov dword [esp + 0x1ac], eax
mov eax, esp
mov ecx, dword [esp + 0x1b0]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x1ac]
mov dword [eax], edx
mov eax, dword [esp + 0x1b4]
call eax
sub esp, 8
mov dword [esp + 0x1a8], eax
jmp 0x418e65
jmp 0x418e65
lea ecx, [esp + 0xb10]
call fcn.00551e20
lea ecx, [esp + 0x610]
call fcn.004d5300
mov dword [esp + 0x1a4], eax
call fcn.00525170
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x19c], edx
mov eax, dword [esp + 0x1a0]
mov dword [esp + 0x608], eax
mov ecx, dword [esp + 0x19c]
mov dword [esp + 0x60c], ecx
lea ecx, [esp + 0xb40]
call fcn.005256d0
mov dword [esp + 0x198], eax
mov eax, esp
mov ecx, dword [esp + 0x198]
mov dword [eax], ecx
lea ecx, [esp + 0x610]
call fcn.0044f120
sub esp, 4
mov eax, dword [esp + 0xb2c]
mov eax, dword [eax + 0xc]
mov eax, dword [eax]
mov dword [0x88ab94], eax
lea ecx, [esp + 0x5f0]
call fcn.004bb4d0
mov dword [esp + 0x194], eax
lea ecx, [esp + 0xb40]
call fcn.005256d0
mov dword [esp + 0x190], eax
mov eax, 0
mov ecx, dword [0x88c650]
call fcn.0041b350
add eax, 0xffffffff
mov esi, ecx
add esi, eax
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete bl
push ebx
mov ebx, 0xe5e2de34
xor ebx, 0xe5e2de3e
cmp edx, ebx
pop ebx
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x418f6a
jmp 0x41af38
mov ecx, dword [esp + 0x190]
call fcn.004ddfd0
mov dl, 1
mov ecx, 0
mov esi, dword [0x88c650]
mov edi, dword [0x88c654]
add ecx, 0xffffffff
mov ebx, esi
add ebx, ecx
imul esi, ebx
and esi, 1
cmp esi, 0
sete dh
cmp edi, 0xa
setl cl
mov ch, dh
xor ch, 1
mov bl, cl
xor bl, 1
xor dl, 0
mov bh, ch
and bh, 0
and dh, dl
mov dword [esp + 0x18c], eax
mov al, bl
and al, 0
and cl, dl
or bh, dh
or al, cl
xor bh, al
or ch, bl
xor ch, 1
or dl, 0
and ch, dl
or bh, ch
test bh, 1
jne 0x418fef
jmp 0x41af38
lea eax, [esp + 0x5d8]
mov dword [esp], eax
mov eax, dword [esp + 0x18c]
mov dword [esp + 4], eax
call fcn.00482800
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 0x125816ff
sub edx, 1
add edx, 0x125816ff
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x419056
jmp 0x41af4d
mov eax, 0
lea ecx, [esp + 0x4d4]
mov edx, dword [0x88c650]
call fcn.0041b360
sub eax, 1
mov edi, edx
add edi, eax
imul edx, edi
and edx, 1
push ebx
mov ebx, 0xbf845b3
xor ebx, 0xbf845b3
cmp edx, ebx
pop ebx
sete bl
cmp esi, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
mov dword [esp + 0x188], ecx
jne 0x4190b6
jmp 0x41af4d
mov eax, esp
mov ecx, dword [esp + 0x188]
call fcn.0041b370
mov dword [eax], 0x104
call fcn.0041b380
call eax
sub esp, 8
mov dword [esp + 0x184], eax
mov eax, dword [esp + 0x184]
push ebx
mov ebx, 0xb005370e
xor ebx, 0xb005370e
cmp eax, ebx
pop ebx
je 0x4191ff
lea eax, [esp + 0x4d4]
mov ecx, 0x100000
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x5f0]
call fcn.00405980
sub esp, 4
mov dword [esp + 0x180], eax
jmp 0x419122
lea ecx, [esp + 0x5f0]
call fcn.004059b0
mov dl, 0
cmp eax, 0
mov byte [esp + 0x17f], dl
je 0x41916f
lea ecx, [esp + 0x5f0]
call fcn.0051ca80
mov dword [esp + 0x178], eax
mov eax, dword [esp + 0x178]
movsx ecx, byte [eax]
cmp ecx, 0x5c
sete dl
mov byte [esp + 0x17f], dl
mov al, byte [esp + 0x17f]
test al, 1
jne 0x419183
jmp 0x4191fa
lea ecx, [esp + 0x5f0]
call fcn.004059b0
add eax, 0xefb36cbb
add eax, 0xffffffff
sub eax, 0xefb36cbb
mov ecx, esp
call fcn.0041b390
lea eax, [esp + 0x4b8]
mov dword [ecx], eax
mov dword [ecx + 4], 0
lea ecx, [esp + 0x5f0]
call fcn.00498be0
sub esp, 0xc
mov eax, esp
lea ecx, [esp + 0x4b8]
call fcn.0041b3a0
lea ecx, [esp + 0x5f0]
call fcn.004fe0f0
sub esp, 4
lea ecx, [esp + 0x4b8]
mov dword [esp + 0x174], eax
call fcn.00551e20
jmp 0x419122
jmp 0x4191ff
lea ecx, [esp + 0x5f0]
call fcn.004ddfd0
mov ecx, 1
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 0x170], ecx
call fcn.004493f0
mov byte [esp + 0x16f], al
mov al, byte [esp + 0x16f]
test al, 1
jne 0x419268
jmp 0x419242
mov eax, esp
lea ecx, [esp + 0x5d8]
mov dword [eax], ecx
lea ecx, [esp + 0x5f0]
call fcn.0054f550
sub esp, 4
mov dword [esp + 0x168], eax
jmp 0x419268
lea eax, [esp + 0x4a0]
mov dword [esp], eax
call fcn.004954b0
mov eax, dword [esp + 0xbbc]
mov ecx, esp
call fcn.0041b3b0
lea ecx, [esp + 0x488]
call fcn.00401770
sub esp, 4
mov dword [esp + 0x164], eax
mov eax, esp
mov dword [eax], 0x878910
lea ecx, [esp + 0x470]
call fcn.00401770
sub esp, 4
mov dword [esp + 0x160], eax
mov eax, esp
lea ecx, [esp + 0x488]
call fcn.0041b3c0
lea ecx, [esp + 0x470]
mov dword [eax], ecx
lea ecx, [esp + 0x610]
call fcn.00497630
sub esp, 8
lea ecx, [esp + 0x470]
call fcn.00551e20
lea ecx, [esp + 0x488]
call fcn.00551e20
mov ecx, esp
mov dword [ecx], 0x878970
lea ecx, [esp + 0x458]
call fcn.00401770
sub esp, 4
mov dword [esp + 0x15c], eax
mov eax, esp
lea ecx, [esp + 0x5f0]
mov dword [eax + 4], ecx
lea ecx, [esp + 0x458]
mov dword [eax], ecx
lea ecx, [esp + 0x610]
call fcn.00497630
sub esp, 8
lea ecx, [esp + 0x458]
call fcn.00551e20
mov ecx, esp
mov dword [ecx], 0x877b4c
lea ecx, [esp + 0x440]
call fcn.00401770
sub esp, 4
mov dword [esp + 0x158], eax
mov eax, esp
lea ecx, [esp + 0x5d8]
call fcn.0041b000
lea ecx, [esp + 0x440]
call fcn.0041b010
lea ecx, [esp + 0x610]
call fcn.00497630
sub esp, 8
lea ecx, [esp + 0x440]
call fcn.00551e20
lea ecx, [esp + 0x410]
mov eax, 0x57a354
mov eax, dword [eax]
mov dword [esp], ecx
mov dword [esp + 4], 0x1a
mov dword [esp + 0x154], eax
call fcn.00404a00
lea ecx, [esp + 0x410]
call fcn.004ddfd0
mov ecx, 0x400
mov ecx, esp
call fcn.0041b020
lea ecx, [esp + 0x428]
call fcn.00401770
sub esp, 4
mov dword [esp + 0x150], eax
mov eax, esp
call fcn.0041b030
lea ecx, [esp + 0x3f8]
call fcn.00401770
sub esp, 4
mov dword [esp + 0x14c], eax
mov eax, esp
lea ecx, [esp + 0x428]
mov dword [eax + 4], ecx
lea ecx, [esp + 0x3f8]
mov dword [eax], ecx
lea ecx, [esp + 0x610]
call fcn.00497630
sub esp, 8
lea ecx, [esp + 0x3f8]
call fcn.00551e20
lea ecx, [esp + 0x428]
call fcn.00551e20
lea ecx, [esp + 0x410]
call fcn.00551e20
lea ecx, [esp + 0x3c8]
mov eax, 0x1c
mov dword [esp], ecx
mov dword [esp + 4], 0x1c
mov dword [esp + 0x148], eax
call fcn.00404a00
mov eax, 0
mov ecx, dword [0x88c650]
mov edx, dword [0x88c654]
sub eax, 1
mov esi, ecx
add esi, eax
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x4194bd
jmp 0x41af52
lea ecx, [esp + 0x3c8]
call fcn.004ddfd0
mov ecx, dword [0x88c650]
mov edx, dword [0x88c654]
mov esi, ecx
sub esi, 0xd40ea51d
add esi, 0xffffffff
add esi, 0xd40ea51d
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
mov cl, bl
and cl, bh
xor bl, bh
or cl, bl
test cl, 1
mov dword [esp + 0x144], eax
jne 0x419521
jmp 0x41af52
mov eax, esp
mov ecx, dword [esp + 0x144]
call fcn.0041b040
lea ecx, [esp + 0x3e0]
call fcn.00401770
sub esp, 4
mov dword [esp + 0x140], eax
mov eax, esp
call fcn.0041b050
lea ecx, [esp + 0x3b0]
call fcn.00401770
sub esp, 4
mov dword [esp + 0x13c], eax
mov eax, esp
lea ecx, [esp + 0x3e0]
mov dword [eax + 4], ecx
lea ecx, [esp + 0x3b0]
mov dword [eax], ecx
lea ecx, [esp + 0x610]
call fcn.00497630
sub esp, 8
lea ecx, [esp + 0x3b0]
call fcn.00551e20
lea ecx, [esp + 0x3e0]
call fcn.00551e20
lea ecx, [esp + 0x3c8]
call fcn.00551e20
lea ecx, [esp + 0x380]
mov eax, 0x26
mov dword [esp], ecx
mov dword [esp + 4], 0x26
mov dword [esp + 0x138], eax
call fcn.00404a00
lea ecx, [esp + 0x380]
call fcn.004ddfd0
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x398]
call fcn.00401770
sub esp, 4
mov dword [esp + 0x134], eax
mov eax, esp
call fcn.0041b060
lea ecx, [esp + 0x368]
call fcn.00401770
sub esp, 4
mov dword [esp + 0x130], eax
mov eax, esp
lea ecx, [esp + 0x398]
mov dword [eax + 4], ecx
lea ecx, [esp + 0x368]
mov dword [eax], ecx
lea ecx, [esp + 0x610]
call fcn.00497630
sub esp, 8
lea ecx, [esp + 0x368]
call fcn.00551e20
lea ecx, [esp + 0x398]
call fcn.00551e20
lea ecx, [esp + 0x380]
call fcn.00551e20
lea ecx, [esp + 0x4a0]
call fcn.004ddfd0
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x350]
call fcn.00401770
sub esp, 4
mov dword [esp + 0x12c], eax
mov eax, esp
mov dword [eax], str.HG
lea ecx, [esp + 0x338]
call fcn.00401770
sub esp, 4
mov dword [esp + 0x128], eax
mov eax, esi
mov eax, esp
lea ecx, [esp + 0x350]
mov dword [eax + 4], ecx
lea ecx, [esp + 0x338]
mov dword [eax], ecx
lea ecx, [esp + 0x610]
call fcn.00497630
sub esp, 8
lea ecx, [esp + 0x338]
call fcn.00551e20
lea ecx, [esp + 0x350]
call fcn.00551e20
lea ecx, [esp + 0x4a0]
call fcn.00551e20
lea ecx, [esp + 0x5d8]
call fcn.00551e20
lea ecx, [esp + 0x5f0]
call fcn.00551e20
lea ecx, [esp + 0xb40]
call fcn.004ab1c0
mov byte [esp + 0x127], al
mov al, byte [esp + 0x127]
test al, 1
jne 0x419725
jmp 0x419970
mov eax, dword [esp + 0xb2c]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov dword [esp + 0x334], eax
mov al, 0
cmp dword [esp + 0x334], 0
mov byte [esp + 0x126], al
je 0x41976b
mov eax, dword [esp + 0x334]
cmp dword [eax + 0x10], 0
setne cl
mov byte [esp + 0x126], cl
mov al, byte [esp + 0x126]
test al, 1
jne 0x41977f
jmp 0x419795
mov eax, dword [esp + 0x334]
mov eax, dword [eax + 0x10]
mov dword [esp + 0x334], eax
jmp 0x419739
cmp dword [esp + 0x334], 0
je 0x41996b
mov eax, 0xffffffff
mov ecx, dword [esp + 0x334]
mov ecx, dword [ecx]
xor ecx, 0xffffffff
mov edx, eax
xor edx, 0x10000
xor eax, 0x831a5b00
xor eax, 0xaeaf9453
or ecx, edx
or eax, 0x2db5cf53
xor ecx, 0xffffffff
and ecx, eax
cmp ecx, 0
je 0x41996b
cmp dword [0x87e354], 0
je 0x41983c
mov eax, dword [0x87e6b8]
mov ecx, dword [esp + 0x334]
mov ecx, dword [ecx + 0x24]
mov edx, esp
mov dword [edx + 4], ecx
call fcn.0041b070
call fcn.0041b080
mov dword [edx], 0
call eax
sub esp, 0x10
mov dword [esp + 0x120], eax
mov eax, dword [esp + 0x120]
mov dword [esp + 0x11c], eax
jmp 0x41984f
mov eax, 0x57a3a4
mov eax, dword [eax]
mov dword [esp + 0x11c], eax
jmp 0x41984f
mov eax, dword [esp + 0x11c]
cmp eax, 6
je 0x419966
mov al, 1
call fcn.0041b090
mov edx, dword [0x88c654]
mov esi, ecx
add esi, 0x80b3d41e
sub esi, 1
add esi, 0x7f4c2be2
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 1
mov ch, bh
and ch, 1
and ah, al
mov dl, cl
and dl, 1
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 1
and bh, al
or ch, bh
test ch, 1
jne 0x4198d6
jmp 0x41af67
mov al, 1
mov dword [esp + 0xbc0], 0
mov dword [esp + 0xb3c], 1
mov ecx, dword [0x88c650]
call fcn.0041b0a0
mov esi, ecx
add esi, 0x2c9c8398
sub esi, 1
sub esi, 0x2c9c8398
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 1
mov ch, bh
and ch, 1
and ah, al
mov dl, cl
and dl, 1
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 1
and bh, al
or ch, bh
test ch, 1
jne 0x419961
jmp 0x41af67
jmp 0x41aede
jmp 0x41996b
jmp 0x419970
lea eax, [0x88ab98]
mov dword [esp], eax
call fcn.0043b280
mov dword [esp + 0x118], eax
mov eax, dword [esp + 0x118]
mov dword [esp + 0x330], eax
cmp eax, 0
jne 0x41ad17
mov dword [esp + 0x32c], 0
mov dword [esp + 0x328], 0
mov eax, dword [esp + 0xb2c]
mov eax, dword [eax + 0xc]
mov eax, dword [eax + 4]
mov dword [esp + 0x328], eax
mov dword [esp + 0x324], 0
cmp dword [esp + 0x328], 0
je 0x419fe6
mov eax, dword [esp + 0x324]
sub eax, 0xc5eda6fc
add eax, 1
add eax, 0xc5eda6fc
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0xb30]
call fcn.004edce0
sub esp, 4
mov eax, dword [esp + 0x324]
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0xb30]
call fcn.004de760
sub esp, 4
mov dword [esp + 0x114], eax
mov eax, 0xffffffff
mov ecx, dword [esp + 0x114]
mov dword [esp + 0x320], ecx
mov edx, dword [esp + 0x324]
sub edx, 0x1e965bc9
add edx, 1
sub edx, 0xe169a437
mov esi, dword [esp + 0x320]
mov dword [esi + 4], edx
mov edx, dword [esp + 0x328]
mov esi, dword [esp + 0x320]
mov dword [esi], edx
mov edx, dword [esp + 0x328]
call fcn.0041b0b0
xor eax, 0x100
mov esi, edx
xor esi, eax
and esi, edx
push ecx
mov ecx, 0x666510d3
xor ecx, 0x666510d3
cmp esi, ecx
pop ecx
je 0x419ab5
lea eax, str.ZgOco
mov ecx, dword [esp + 0x320]
mov dword [ecx + 0x20], eax
jmp 0x419f66
cmp dword [0x87eb60], 0
je 0x419ae6
call fcn.0041b0c0
call eax
mov dword [esp + 0x110], eax
mov eax, dword [esp + 0x110]
mov dword [esp + 0x10c], eax
jmp 0x419bb9
mov al, 1
call fcn.0041b0d0
mov edx, dword [0x88c654]
mov esi, ecx
add esi, 0xb5b09a23
add esi, 0xffffffff
sub esi, 0xb5b09a23
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 0
mov ch, bh
and ch, 0
and ah, al
mov dl, cl
and dl, 0
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 0
and bh, al
or ch, bh
test ch, 1
jne 0x419b5b
jmp 0x41af82
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 0x119244ef
add edx, 0xffffffff
add edx, 0x119244ef
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x419ba8
jmp 0x41af82
mov eax, 0
mov dword [esp + 0x10c], eax
jmp 0x419bb9
mov eax, dword [esp + 0x10c]
mov dword [esp + 0x31c], eax
mov eax, dword [esp + 0x328]
mov ecx, esp
lea edx, [esp + 0x610]
mov dword [ecx + 8], edx
mov dword [ecx + 4], eax
lea eax, [esp + 0x300]
mov dword [ecx], eax
mov dword [ecx + 0xc], 0
lea ecx, [esp + 0xb40]
call fcn.004bb9d0
sub esp, 0x10
call fcn.0041b0e0
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 0xb529a8ee
add edx, 0xffffffff
add edx, 0xb529a8ee
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x419c49
jmp 0x41af87
mov eax, esp
lea ecx, [esp + 0x300]
mov dword [eax], ecx
lea ecx, [esp + 0xb88]
call fcn.004fe0f0
sub esp, 4
lea ecx, [esp + 0x300]
mov dword [esp + 0x108], eax
call fcn.00551e20
lea ecx, [esp + 0xb88]
call fcn.004ddfd0
mov ecx, dword [0x88c650]
mov edx, dword [0x88c654]
mov esi, ecx
sub esi, 0x84dd03c8
add esi, 0xffffffff
add esi, 0x84dd03c8
imul ecx, esi
and ecx, 1
push ebx
mov ebx, 0x1a38ef5a
xor ebx, 0x1a38ef5a
cmp ecx, ebx
pop ebx
sete bl
push ecx
mov ecx, 0x40fc16c8
xor ecx, 0x40fc16c2
cmp edx, ecx
pop ecx
setl bh
mov cl, bl
and cl, bh
xor bl, bh
or cl, bl
test cl, 1
mov dword [esp + 0x104], eax
jne 0x419cec
jmp 0x41af87
mov eax, dword [esp + 0x104]
mov dword [esp], eax
call fcn.0043b2bd
mov dword [esp + 0x100], eax
mov eax, dword [esp + 0x320]
mov ecx, dword [esp + 0x100]
mov dword [eax + 0x20], ecx
mov eax, dword [esp + 0x320]
mov eax, dword [eax + 0x20]
mov edx, 0x4374a4
mov edx, esp
mov dword [edx], eax
call fcn.00438640
mov dword [esp + 0xfc], eax
mov al, 1
mov ecx, dword [0x88c650]
call fcn.0041b0f0
mov esi, ecx
sub esi, 0xfc2bdcec
add esi, 0xffffffff
add esi, 0xfc2bdcec
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 0
mov ch, bh
and ch, 0
and ah, al
mov dl, cl
and dl, 0
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 0
and bh, al
or ch, bh
test ch, 1
jne 0x419da7
jmp 0x41afc9
mov eax, dword [esp + 0xfc]
cmp eax, 0
sete cl
mov edx, dword [0x88c650]
mov esi, dword [0x88c654]
mov edi, edx
add edi, 0x7f651ae
sub edi, 1
add edi, 0xf809ae52
imul edx, edi
and edx, 1
cmp edx, 0
sete ch
cmp esi, 0xa
setl bl
mov bh, ch
and bh, bl
xor ch, bl
or bh, ch
test bh, 1
mov byte [esp + 0xfb], cl
jne 0x419e0e
jmp 0x41afc9
mov al, byte [esp + 0xfb]
test al, 1
jne 0x419e22
jmp 0x419f21
mov eax, 0xffffffff
mov ecx, dword [esp + 0x328]
mov ecx, dword [ecx]
xor eax, 2
mov edx, ecx
xor edx, eax
and edx, ecx
push ebx
mov ebx, 0xc64c2a47
xor ebx, 0xc64c2a47
cmp edx, ebx
pop ebx
je 0x419f1c
mov al, 1
mov ecx, 0
mov edx, dword [0x88c650]
mov esi, dword [0x88c654]
sub ecx, 1
mov edi, edx
add edi, ecx
imul edx, edi
and edx, 1
push eax
mov eax, 0x20b323f6
xor eax, 0x20b323f6
cmp edx, eax
pop eax
sete ah
cmp esi, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 0
mov ch, bh
and ch, 0
and ah, al
mov dl, cl
and dl, 0
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 0
and bh, al
or ch, bh
test ch, 1
jne 0x419eca
jmp 0x41afce
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
add edx, 0x5805a4a1
sub edx, 1
sub edx, 0x5805a4a1
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x419f17
jmp 0x41afce
call fcn.0041b8e0
jmp 0x419f61
mov eax, 0x57a358
mov eax, dword [eax]
mov ecx, dword [esp + 0x328]
call fcn.0041b100
xor eax, 0x8958bd3b
xor eax, 0x8958bd3a
mov edx, 0x40
mov edx, ecx
xor edx, eax
and edx, ecx
mov eax, dword [esp + 0x32c]
mov ecx, eax
and ecx, edx
xor eax, edx
or ecx, eax
mov dword [esp + 0x32c], ecx
jmp 0x419f66
mov eax, dword [esp + 0x320]
mov eax, dword [eax + 0x20]
mov ecx, esp
mov dword [ecx], eax
lea ecx, [esp + 0x2e8]
call fcn.00401770
sub esp, 4
mov dword [esp + 0xf4], eax
mov eax, esp
lea ecx, [esp + 0x2e8]
mov dword [eax], ecx
lea ecx, [esp + 0x610]
call fcn.0044f120
sub esp, 4
lea ecx, [esp + 0x2e8]
call fcn.00551e20
mov eax, dword [esp + 0x328]
call fcn.0041b110
mov dword [esp + 0x328], eax
mov eax, dword [esp + 0x324]
add eax, 0xac9219e2
add eax, 1
add eax, 0x536de61e
mov dword [esp + 0x324], eax
jmp 0x4199d3
lea ecx, [esp + 0x2e0]
call fcn.004684d0
mov dword [esp + 0xf0], eax
mov eax, esp
lea ecx, [esp + 0x2d8]
call fcn.0041b120
lea ecx, [esp + 0xb30]
call fcn.004ee120
sub esp, 4
mov eax, dword [esp + 0x2d8]
mov dword [esp + 0x2e0], eax
lea eax, [esp + 0x2e0]
mov ecx, edx
mov ecx, esp
lea edx, [esp + 0x2d0]
mov dword [ecx], edx
lea ecx, [esp + 0xb30]
mov dword [esp + 0xec], eax
call fcn.00468680
sub esp, 4
lea eax, [esp + 0x2d0]
mov ecx, esp
mov dword [ecx], eax
mov ecx, dword [esp + 0xec]
call fcn.004aafd0
sub esp, 4
mov byte [esp + 0xeb], al
mov al, byte [esp + 0xeb]
test al, 1
jne 0x41a083
jmp 0x41a663
lea ecx, [esp + 0x2e0]
call fcn.004ee170
mov dword [esp + 0xe4], eax
mov eax, 0xffffffff
mov ecx, dword [esp + 0xe4]
mov edx, dword [ecx]
mov edx, dword [edx]
xor edx, 0xffffffff
mov esi, eax
xor esi, 0x20
xor eax, 0x705c37c6
or edx, esi
or eax, 0x705c37c6
xor edx, 0xffffffff
and edx, eax
cmp edx, 0
je 0x41a1bc
call fcn.0041b130
mov ecx, dword [0x88c654]
mov edx, 0x100000
mov edx, eax
add edx, 0x4cf916c9
sub edx, 1
add edx, 0xb306e937
imul eax, edx
and eax, 1
push ecx
mov ecx, 0x17742076
xor ecx, 0x17742076
cmp eax, ecx
pop ecx
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x41a130
jmp 0x41afd3
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 0xfe664c47
sub edx, 1
sub edx, 0x199b3b9
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x41a17d
jmp 0x41afd3
lea ecx, [esp + 0x2e0]
call fcn.004ee170
mov dword [esp + 0xe0], eax
mov eax, dword [esp + 0xe0]
mov ecx, dword [eax + 0x20]
mov edx, esp
mov dword [edx], ecx
call fcn.00438640
mov dword [esp + 0xdc], eax
mov eax, dword [esp + 0xdc]
cmp eax, 0
jne 0x41a1c1
jmp 0x41a638
lea ecx, [esp + 0x2e0]
call fcn.004ee170
mov dword [esp + 0xd8], eax
mov eax, 0xffffffff
mov ecx, dword [esp + 0xd8]
mov edx, dword [ecx]
mov edx, dword [edx]
xor eax, 0x16e3f326
xor eax, 0x96e3f326
mov esi, edx
xor esi, eax
and esi, edx
cmp esi, 0
je 0x41a207
jmp 0x41a638
lea ecx, [esp + 0x2e0]
call fcn.004ee170
mov dword [esp + 0xd4], eax
lea eax, [esp + 0x2b8]
lea ecx, [esp + 0x610]
mov edx, 1
mov esi, dword [esp + 0xd4]
mov edi, dword [esi]
mov edi, dword [edi + 0x24]
mov dword [esp], eax
mov dword [esp + 4], edi
mov dword [esp + 8], ecx
mov dword [esp + 0xc], 1
mov dword [esp + 0xd0], edx
call fcn.00481d60
mov eax, esp
lea ecx, [esp + 0x2b8]
mov dword [eax], ecx
lea ecx, [esp + 0xba0]
call fcn.004fe0f0
sub esp, 4
lea ecx, [esp + 0x2b8]
mov dword [esp + 0xcc], eax
call fcn.00551e20
lea ecx, [esp + 0xba0]
call fcn.004ddfd0
mov dword [esp], eax
call fcn.0043b2bd
mov dword [esp + 0xc8], eax
lea ecx, [esp + 0x2e0]
call fcn.004ee170
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xc4]
mov ecx, dword [esp + 0xc8]
mov dword [eax + 0x1c], ecx
cmp dword [0x87eb60], 0
je 0x41a3cd
mov al, 1
mov ecx, 0
call fcn.0041b140
mov esi, dword [0x88c654]
sub ecx, 1
mov edi, edx
add edi, ecx
imul edx, edi
and edx, 1
cmp edx, 0
sete ah
push ecx
mov ecx, 0xca1540dc
xor ecx, 0xca1540d6
cmp esi, ecx
pop ecx
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 0
mov ch, bh
and ch, 0
and ah, al
mov dl, cl
and dl, 0
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 0
and bh, al
or ch, bh
test ch, 1
jne 0x41a34d
jmp 0x41afd8
mov eax, dword [0x87eb60]
mov ecx, dword [0x88c650]
mov edx, dword [0x88c654]
mov esi, ecx
add esi, 0x977a267c
add esi, 0xffffffff
sub esi, 0x977a267c
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete bl
cmp edx, 0xa
setl bh
mov cl, bl
and cl, bh
xor bl, bh
or cl, bl
test cl, 1
mov dword [esp + 0xc0], eax
jne 0x41a3aa
jmp 0x41afd8
mov eax, dword [esp + 0xc0]
call eax
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0xbc]
mov dword [esp + 0xb8], eax
jmp 0x41a3de
mov eax, 0
mov dword [esp + 0xb8], eax
jmp 0x41a3de
mov eax, dword [esp + 0xb8]
mov dword [esp + 0x2b4], eax
lea ecx, [esp + 0x2e0]
call fcn.004de9b0
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xb40]
mov dword [esp], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 4], eax
call fcn.004fecb0
mov dword [esp + 0xb0], eax
cmp dword [0x87f250], 0
je 0x41a485
mov eax, dword [0x87f250]
lea ecx, [esp + 0x2e0]
mov dword [esp + 0xac], eax
call fcn.004ee170
mov dword [esp + 0xa8], eax
mov eax, dword [esp + 0xa8]
call fcn.0041b150
mov edx, esp
mov dword [edx], ecx
mov ecx, dword [esp + 0xac]
call ecx
sub esp, 4
mov dword [esp + 0xa4], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0xa0], eax
jmp 0x41a496
mov eax, 0
mov dword [esp + 0xa0], eax
jmp 0x41a496
mov eax, dword [esp + 0xa0]
lea ecx, [esp + 0x298]
mov dword [esp + 0x2b0], eax
mov eax, dword [esp + 0x2b0]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004deba0
mov eax, dword [0x88c650]
call fcn.0041b160
mov edx, eax
sub edx, 0x9ff1155e
sub edx, 1
add edx, 0x9ff1155e
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x41a50a
jmp 0x41afdd
mov al, 1
mov ecx, 0
mov edx, dword [0x88c650]
mov esi, dword [0x88c654]
sub ecx, 1
mov edi, edx
add edi, ecx
imul edx, edi
and edx, 1
cmp edx, 0
sete ah
cmp esi, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 0
mov ch, bh
and ch, 0
and ah, al
mov dl, cl
and dl, 0
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 0
and bh, al
or ch, bh
test ch, 1
jne 0x41a57b
jmp 0x41afdd
mov eax, esp
call fcn.0041b170
lea ecx, [esp + 0x280]
call fcn.00401770
sub esp, 4
mov dword [esp + 0x9c], eax
lea ecx, [esp + 0x2e0]
call fcn.004ee170
mov dword [esp + 0x98], eax
lea eax, [esp + 0x268]
mov ecx, dword [esp + 0x98]
call fcn.0041b180
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004dec70
mov eax, esp
lea ecx, [esp + 0x268]
mov dword [eax], ecx
lea ecx, [esp + 0x280]
call fcn.004122e0
sub esp, 4
mov dword [esp + 0x94], eax
mov eax, 0x8000
mov eax, esp
lea ecx, [esp + 0x298]
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x94]
mov dword [eax], ecx
lea ecx, [esp + 0x610]
call fcn.00497630
sub esp, 8
lea ecx, [esp + 0x268]
call fcn.00551e20
lea ecx, [esp + 0x280]
call fcn.00551e20
lea ecx, [esp + 0x298]
call fcn.00551e20
mov eax, 0x200
mov eax, esp
lea ecx, [esp + 0x260]
mov dword [eax], ecx
mov dword [eax + 4], 0
lea ecx, [esp + 0x2e0]
call fcn.0041bab0
sub esp, 8
jmp 0x41a024
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, 0x3ffff
mov edx, eax
sub edx, 0x2e7c15b5
sub edx, 1
add edx, 0x2e7c15b5
imul eax, edx
and eax, 1
push edx
mov edx, 0xb0450daa
xor edx, 0xb0450daa
cmp eax, edx
pop edx
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x41a6bf
jmp 0x41afe2
cmp dword [esp + 0x32c], 0
setne al
mov ecx, dword [0x88c650]
mov edx, dword [0x88c654]
mov esi, ecx
add esi, 0x35d8ad6b
sub esi, 1
add esi, 0xca275295
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
and bh, bl
xor ah, bl
or bh, ah
test bh, 1
mov byte [esp + 0x93], al
jne 0x41a725
jmp 0x41afe2
mov al, byte [esp + 0x93]
test al, 1
jne 0x41a739
jmp 0x41ac2d
mov eax, esp
lea ecx, [esp + 0x258]
mov dword [eax], ecx
lea ecx, [esp + 0xb30]
call fcn.004ee120
sub esp, 4
mov eax, dword [esp + 0x258]
mov dword [esp + 0x2e0], eax
lea eax, [esp + 0x2e0]
mov ecx, esp
lea edx, [esp + 0x250]
mov dword [ecx], edx
lea ecx, [esp + 0xb30]
mov dword [esp + 0x8c], eax
call fcn.00468680
sub esp, 4
lea eax, [esp + 0x250]
mov ecx, esp
mov dword [ecx], eax
mov ecx, dword [esp + 0x8c]
call fcn.004aafd0
sub esp, 4
mov byte [esp + 0x8b], al
mov al, byte [esp + 0x8b]
test al, 1
jne 0x41a7be
jmp 0x41aa20
lea ecx, [esp + 0x2e0]
call fcn.004ee170
mov dword [esp + 0x84], eax
mov eax, dword [esp + 0x84]
cmp dword [eax + 8], 0
je 0x41a9f0
lea ecx, [esp + 0x2e0]
call fcn.004ee170
mov dword [esp + 0x80], eax
mov eax, 0xffffffff
mov ecx, dword [esp + 0x80]
call fcn.0041b190
mov edx, dword [edx]
xor edx, 0x680a9099
xor edx, 0x97f56f66
mov esi, eax
xor esi, 0x22a43c1a
xor esi, 0x22a43c9a
xor eax, 0x692c20a1
xor eax, 0xee00daa
or edx, esi
or eax, 0x67cc2d0b
xor edx, 0xffffffff
and edx, eax
push eax
mov eax, 0x4c2538c6
xor eax, 0x4c2538c6
cmp edx, eax
pop eax
je 0x41a9f0
cmp dword [0x87e38c], 0
je 0x41a99d
mov al, 1
mov ecx, dword [0x88c650]
mov edx, dword [0x88c654]
mov esi, ecx
add esi, 0x6e2c5fb3
add esi, 0xffffffff
sub esi, 0x6e2c5fb3
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 1
mov ch, bh
and ch, 1
and ah, al
mov dl, cl
and dl, 1
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 1
and bh, al
or ch, bh
test ch, 1
jne 0x41a8db
jmp 0x41afe7
mov al, 1
call fcn.0041b1a0
mov edx, dword [0x88c650]
mov esi, dword [0x88c654]
mov edi, edx
add edi, 0x2f542a54
sub edi, 1
add edi, 0xd0abd5ac
imul edx, edi
and edx, 1
cmp edx, 0
sete ah
cmp esi, 0xa
setl bl
mov bh, ah
xor bh, 1
mov dl, bl
xor dl, 1
xor al, 0
mov dh, bh
and dh, 0
and ah, al
mov byte [esp + 0x7f], al
mov al, dl
and al, 0
mov byte [esp + 0x7e], al
mov al, byte [esp + 0x7f]
and bl, al
or dh, ah
mov ah, byte [esp + 0x7e]
or ah, bl
xor dh, ah
or bh, dl
xor bh, 1
or al, 0
and bh, al
or dh, bh
test dh, 1
mov dword [esp + 0x78], ecx
jne 0x41a969
jmp 0x41afe7
lea ecx, [esp + 0x2e0]
call fcn.004ee170
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 8]
mov edx, esp
mov dword [edx], ecx
mov dword [edx + 4], 0x5265c00
mov ecx, dword [esp + 0x78]
call ecx
sub esp, 8
mov dword [esp + 0x70], eax
jmp 0x41a9a2
jmp 0x41a9a2
cmp dword [0x87f718], 0
je 0x41a9eb
call fcn.0041b1b0
lea ecx, [esp + 0x2e0]
mov dword [esp + 0x6c], eax
call fcn.004ee170
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x68]
mov ecx, dword [eax + 8]
mov edx, esp
call fcn.0041b1c0
mov ecx, dword [esp + 0x6c]
call ecx
sub esp, 4
mov dword [esp + 0x64], eax
jmp 0x41a9f0
jmp 0x41a9f0
jmp 0x41a9f5
mov eax, 0x437474
mov eax, esp
lea ecx, [esp + 0x248]
mov dword [eax], ecx
mov dword [eax + 4], 0
lea ecx, [esp + 0x2e0]
call fcn.0041bab0
sub esp, 8
jmp 0x41a761
mov eax, esp
lea ecx, [esp + 0x240]
mov dword [eax], ecx
lea ecx, [esp + 0xb30]
call fcn.004ee120
sub esp, 4
mov eax, dword [esp + 0x240]
mov dword [esp + 0x2e0], eax
lea eax, [esp + 0x2e0]
mov ecx, esp
lea edx, [esp + 0x238]
mov dword [ecx], edx
lea ecx, [esp + 0xb30]
mov dword [esp + 0x60], eax
call fcn.00468680
sub esp, 4
lea eax, [esp + 0x238]
mov ecx, esp
call fcn.0041b1d0
mov ecx, dword [esp + 0x60]
call fcn.004aafd0
sub esp, 4
mov byte [esp + 0x5f], al
mov al, byte [esp + 0x5f]
test al, 1
jne 0x41aa9c
jmp 0x41ac28
lea ecx, [esp + 0x2e0]
call fcn.004ee170
mov dword [esp + 0x58], eax
mov eax, 0xffffffff
mov ecx, dword [esp + 0x58]
call fcn.0041b1e0
call fcn.0041b1f0
xor edx, 0x9cf95b51
xor edx, 0x6306a4ae
mov esi, eax
xor esi, 0x4cb55472
xor esi, 0x4cb55473
xor eax, 0x72f1f604
or edx, esi
or eax, 0x72f1f604
xor edx, 0xffffffff
and edx, eax
push eax
mov eax, 0x29aa6d87
xor eax, 0x29aa6d87
cmp edx, eax
pop eax
je 0x41ab5d
lea ecx, [esp + 0x2e0]
call fcn.004ee170
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x54]
mov ecx, dword [eax + 0x20]
mov edx, esp
mov dword [edx], ecx
call fcn.00438640
mov dword [esp + 0x50], eax
mov eax, dword [esp + 0x50]
cmp eax, 0
jbe 0x41ab5d
lea ecx, [esp + 0x2e0]
call fcn.004ee170
mov dword [esp + 0x4c], eax
mov eax, dword [esp + 0x4c]
mov ecx, dword [eax + 0x20]
mov dword [esp], ecx
call fcn.004bee40
mov byte [esp + 0x4b], al
jmp 0x41ab5d
jmp 0x41ab62
mov eax, dword [0x88c650]
mov ecx, dword [0x88c654]
mov edx, eax
sub edx, 0x2eb7403
sub edx, 1
add edx, 0x2eb7403
imul eax, edx
and eax, 1
cmp eax, 0
sete bl
cmp ecx, 0xa
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x41abaf
jmp 0x41afec
mov eax, 0
call fcn.0041b200
mov edx, dword [0x88c654]
sub eax, 1
mov esi, ecx
add esi, eax
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete bl
push eax
mov eax, 0x50dc627c
xor eax, 0x50dc6276
cmp edx, eax
pop eax
setl bh
mov al, bl
and al, bh
xor bl, bh
or al, bl
test al, 1
jne 0x41ac01
jmp 0x41afec
mov eax, esp
lea ecx, [esp + 0x230]
call fcn.0041b210
call fcn.0041b220
lea ecx, [esp + 0x2e0]
call fcn.0041bab0
sub esp, 8
jmp 0x41aa48
jmp 0x41ac2d
mov al, 1
mov ecx, 0
call fcn.0041b230
mov esi, dword [0x88c654]
sub ecx, 1
mov edi, edx
add edi, ecx
imul edx, edi
and edx, 1
cmp edx, 0
sete ah
cmp esi, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 1
mov ch, bh
and ch, 1
and ah, al
mov dl, cl
and dl, 1
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 1
and bh, al
or ch, bh
test ch, 1
jne 0x41ac9d
jmp 0x41aff1
mov al, 1
mov ecx, dword [0x88c650]
call fcn.0041b240
mov esi, ecx
sub esi, 0xf452487d
sub esi, 1
sub esi, 0xbadb783
imul ecx, esi
and ecx, 1
cmp ecx, 0
sete ah
cmp edx, 0xa
setl bl
mov bh, ah
xor bh, 1
mov cl, bl
xor cl, 1
xor al, 0
mov ch, bh
and ch, 0
and ah, al
mov dl, cl
and dl, 0
and bl, al
or ch, ah
or dl, bl
xor ch, dl
or bh, cl
xor bh, 1
or al, 0
and bh, al
or ch, bh
test ch, 1
jne 0x41ad12
jmp 0x41aff1
jmp 0x41aebb
call fcn.0041b250
mov dword [esp + 0xbb8], eax
mov dword [esp + 0xbb8], 0xff
mov eax, esp
lea ecx, [esp + 0x228]
call fcn.0041b260
lea ecx, [esp + 0xb30]
call fcn.004ee120
sub esp, 4
lea eax, [esp + 0x228]
mov ecx, esi
mov ecx, esp
lea edx, [esp + 0x220]
mov dword [ecx], edx
lea ecx, [esp + 0xb30]
mov dword [esp + 0x44], eax
call fcn.00468680
sub esp, 4
lea eax, [esp + 0x220]
mov ecx, esp
mov dword [ecx], eax
mov ecx, dword [esp + 0x44]
call fcn.004aafd0
sub esp, 4
mov byte [esp + 0x43], al
mov al, byte [esp + 0x43]
test al, 1
jne 0x41ad9e
jmp 0x41aeb6
lea ecx, [esp + 0x228]
call fcn.004ee170
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x3c]
cmp dword [eax + 8], 0
je 0x41ae19
cmp dword [0x87f940], 0
je 0x41ae14
call fcn.0041b270
lea ecx, [esp + 0x228]
mov dword [esp + 0x38], eax
call fcn.004ee170
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 8]
mov edx, 0x4374b0
mov edx, esp
call fcn.0041b280
mov dword [edx + 4], 0xffffffff
mov ecx, dword [esp + 0x38]
call ecx
sub esp, 8
mov dword [esp + 0x30], eax
jmp 0x41ae19
jmp 0x41ae19
lea ecx, [esp + 0x228]
call fcn.004ee170
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x20]
mov edx, 0x1ff
mov edx, esp
call fcn.0041b290
call fcn.00438640
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x28]
push ebx
mov ebx, 0xdd09273
xor ebx, 0xdd09273
cmp eax, ebx
pop ebx
jbe 0x41ae88
lea ecx, [esp + 0x228]
call fcn.004ee170
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x24]
call fcn.0041b2a0
mov dword [esp], ecx
call fcn.004bee40
mov byte [esp + 0x23], al
jmp 0x41ae88
jmp 0x41ae8d
mov eax, esp
lea ecx, [esp + 0x218]
call fcn.0041b2b0
mov dword [eax + 4], 0
lea ecx, [esp + 0x228]
call fcn.0041bab0
sub esp, 8
jmp 0x41ad4b
jmp 0x41aebb
call fcn.00401d30
call fcn.00483d10
mov eax, dword [esp + 0xbb8]
mov dword [esp + 0xbc0], eax
mov dword [esp + 0xb3c], 1
lea ecx, [esp + 0x610]
call fcn.004d5340
lea ecx, [esp + 0xb30]
call fcn.004de9f0
lea ecx, [esp + 0xb40]
call fcn.00481100
lea ecx, [esp + 0xb88]
call fcn.00551e20
lea ecx, [esp + 0xba0]
call fcn.00551e20
mov eax, dword [esp + 0xbc0]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
jmp 0x4189ca
jmp 0x418ab8
jmp 0x418d79
mov ecx, dword [esp + 0x190]
call fcn.004ddfd0
mov dword [esp + 0x1c], eax
jmp 0x418f6a
jmp 0x419056
lea ecx, [esp + 0x3c8]
call fcn.004ddfd0
mov dword [esp + 0x18], eax
jmp 0x4194bd
mov dword [esp + 0xbc0], 0
mov dword [esp + 0xb3c], 1
jmp 0x4198d6
jmp 0x419b5b
mov eax, esp
lea ecx, [esp + 0x300]
call fcn.0041b2c0
lea ecx, [esp + 0xb88]
call fcn.004fe0f0
sub esp, 4
lea ecx, [esp + 0x300]
mov dword [esp + 0x14], eax
call fcn.00551e20
lea ecx, [esp + 0xb88]
call fcn.004ddfd0
mov dword [esp + 0x10], eax
jmp 0x419c49
jmp 0x419da7
jmp 0x419eca
jmp 0x41a130
jmp 0x41a34d
jmp 0x41a50a
jmp 0x41a6bf
jmp 0x41a8db
jmp 0x41abaf
jmp 0x41ac9d