Function at 0x5066b0
Capabilities:
Access peb ldr_data
Check os version
Contain obfuscated stackstrings
Encrypt data using rc4 ksa
Get number of processors
Resolve function by parsing pe exports

Disassembly:
push 0xffffffffffffffff
push 0x542381
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x328
mov eax, dword [0x57f188]
push ebx
push ebp
push esi
mov ecx, dword [eax]
push edi
xor esi, esi
push 0x10070002
push eax
mov dword [esp + 0x44], esi
call dword [ecx + 0xc]
push eax
lea ecx, [esp + 0x34]
call fcn.00492a10
mov eax, dword [0x57f188]
push esi
push eax
mov dword [esp + 0x348], esi
mov edx, dword [eax]
call dword [edx + 0xc]
push eax
lea ecx, [esp + 0x4c]
call fcn.00492a10
mov eax, dword [0x57f188]
push 1
push eax
mov byte [esp + 0x348], 1
mov ecx, dword [eax]
call dword [ecx + 0xc]
push eax
lea ecx, [esp + 0x58]
call fcn.00492a10
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x54]
cmp eax, esi
mov byte [esp + 0x340], 2
je 0x50aa16
cmp edx, esi
je 0x50aa16
cmp ecx, esi
je 0x50aa16
mov eax, dword [esp + 0x350]
cmp eax, esi
je 0x506768
mov edx, dword [eax]
push eax
call dword [edx + 0x18]
lea ecx, [esp + 0x1a0]
call fcn.00405fe0
lea eax, [esp + 0x18e]
lea ecx, [esp + 0x1ac]
push eax
mov byte [esp + 0x344], 4
call fcn.0050e020
lea ecx, [esp + 0x17f]
mov byte [esp + 0x340], 7
push ecx
lea ecx, [esp + 0x1bc]
call fcn.0050e020
lea edx, [esp + 0x1b]
lea ecx, [esp + 0x90]
push edx
mov byte [esp + 0x344], 9
call fcn.0050e020
mov edi, 0x57de64
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x340], 0xa
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x57de64
push ecx
push 0x57de64
lea ecx, [esp + 0x98]
call fcn.004067c0
lea eax, [esp + 0x2b]
lea ecx, [esp + 0x5c]
push eax
mov byte [esp + 0x344], 0xc
call fcn.0050e020
mov edi, 0x57f2d4
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x340], 0xd
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x57f2d4
push ecx
push 0x57f2d4
lea ecx, [esp + 0x64]
call fcn.004067c0
mov ebx, dword [esp + 0x348]
lea ecx, [esp + 0x1a0]
lea edx, [esp + 0x90]
push ecx
push edx
push 0
lea eax, [esp + 0x68]
push 0
push eax
push ebx
mov byte [esp + 0x358], 0xe
call fcn.004c7920
add esp, 0x18
lea ecx, [esp + 0x5c]
mov byte [esp + 0x340], 0xc
call fcn.00418e50
lea ecx, [esp + 0x90]
mov byte [esp + 0x340], 9
call fcn.00418e50
lea ecx, [esp + 0x18f]
mov byte [esp + 0x340], 0xf
push ecx
lea ecx, [esp + 0xc8]
call fcn.0050e020
mov dword [esp + 0xc0], 0x549144
lea esi, [ebx + 0xe4]
lea edx, [esp + 0x19f]
push edx
mov ecx, esi
mov byte [esp + 0x344], 0x10
call fcn.004ffc70
push eax
lea ecx, [esp + 0xb8]
mov byte [esp + 0x344], 0x11
call fcn.0050e020
mov eax, dword [esi + 4]
mov ecx, dword [esi]
push eax
push ecx
lea ecx, [esp + 0xbc]
mov byte [esp + 0x348], 0x13
call fcn.00406830
mov esi, dword [0x57e0b4]
lea edx, [esp + 0x1b]
push edx
lea ecx, [esp + 0x94]
mov byte [esp + 0x344], 0x15
call fcn.0050e020
mov edi, esi
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x340], 0x16
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, esi
push ecx
push esi
lea ecx, [esp + 0x98]
call fcn.004067c0
lea eax, [esp + 0x2b]
lea ecx, [esp + 0x5c]
push eax
mov byte [esp + 0x344], 0x18
call fcn.0050e020
mov edi, 0x57f2d4
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x340], 0x19
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x57f2d4
push ecx
push 0x57f2d4
lea ecx, [esp + 0x64]
call fcn.004067c0
mov ecx, dword [0x57e0b8]
lea edx, [esp + 0xb4]
push ecx
lea eax, [esp + 0x194]
push edx
push eax
mov byte [esp + 0x34c], 0x1a
call fcn.00406250
lea ecx, [esp + 0xcc]
lea edx, [esp + 0x9c]
push ecx
push edx
mov byte [esp + 0x354], 0x1b
push 0
lea ecx, [esp + 0x74]
push 0
push ecx
push eax
call fcn.0050ba10
add esp, 0x24
lea ecx, [esp + 0x190]
mov byte [esp + 0x340], 0x1a
call fcn.00418e50
lea ecx, [esp + 0x5c]
mov byte [esp + 0x340], 0x18
call fcn.00418e50
lea ecx, [esp + 0x90]
mov byte [esp + 0x340], 0x15
call fcn.00418e50
mov eax, dword [ebx + 0x40]
mov ecx, dword [ebx + 0x3c]
xor edi, edi
lea esi, [ecx + ecx]
lea ebp, [eax + eax]
mov dword [esp + 0xf0], ebp
mov dword [esp + 0x14c], edi
mov dword [esp + 0x150], edi
mov dword [esp + 0x154], esi
mov dword [esp + 0x158], ebp
lea edx, [esp + 0x18d]
lea ecx, [esp + 0x70]
push edx
mov byte [esp + 0x344], 0x1c
call fcn.0050e020
mov byte [esp + 0x340], 0x1e
mov dword [esp + 0x2c], edi
push 0
lea ecx, [esp + 0x28]
call fcn.00492a10
mov eax, dword [esp + 0x74]
mov ecx, dword [esp + 0x78]
cmp eax, ecx
mov byte [esp + 0x340], 0x1f
je 0x506a9c
lea ecx, [esp + 0x24]
push ecx
push eax
call fcn.0050bce0
mov eax, dword [esp + 0x7c]
add esp, 8
add eax, 4
mov dword [esp + 0x74], eax
jmp 0x506ab7
push 1
lea edx, [esp + 0x1f]
push 1
lea ecx, [esp + 0x2c]
push edx
push ecx
push eax
lea ecx, [esp + 0x84]
call fcn.0050b3a0
mov eax, dword [esp + 0x24]
mov byte [esp + 0x340], 0x1e
test eax, eax
je 0x506ad4
mov edx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x30]
mov edi, dword [esp + 0x74]
push ebp
push esi
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
lea ecx, [edi - 4]
push eax
call fcn.00405110
mov eax, dword [esp + 0x74]
mov ecx, dword [eax - 4]
test ecx, ecx
je 0x506cb2
push ecx
lea ecx, [esp + 0x74]
mov eax, esp
mov dword [esp + 0xa4], esp
mov dword [eax], 0
call fcn.0050b070
mov ecx, eax
call fcn.0050b150
mov edx, dword [eax]
push eax
call dword [edx + 0x1c]
mov eax, dword [esp + 0x2c]
inc eax
cmp eax, 7
mov dword [esp + 0x2c], eax
jl 0x506a62
mov eax, dword [esp + 0x350]
test eax, eax
je 0x506b45
mov edx, dword [eax]
push eax
call dword [edx + 0x18]
lea eax, [esp + 0x1f4]
push 2
push eax
call fcn.005057c0
push eax
lea ecx, [esp + 0x19c]
push ebx
push ecx
mov byte [esp + 0x354], 0x23
call fcn.00405210
add esp, 0x14
mov ecx, dword [esp + 0x48]
mov eax, dword [eax]
push 1
push eax
mov edx, dword [ecx]
push ecx
mov byte [esp + 0x34c], 0x24
call dword [edx + 0x1c]
push eax
lea ecx, [esp + 0x30]
call fcn.00492a10
lea ecx, [esp + 0x190]
mov byte [esp + 0x340], 0x27
call fcn.00418e50
lea ecx, [esp + 0x1f4]
mov byte [esp + 0x340], 0x26
call fcn.00418e50
mov eax, dword [esp + 0x2c]
test eax, eax
jne 0x506d7f
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
cmp esi, edi
mov byte [esp + 0x340], 0x28
je 0x506be7
push 0
mov ecx, esi
call fcn.0040fa70
add esi, 4
cmp esi, edi
jne 0x506bd7
lea ecx, [esp + 0x70]
mov byte [esp + 0x340], 0x14
call fcn.00418e50
lea ecx, [esp + 0xb4]
mov byte [esp + 0x340], 0x10
call fcn.00418e50
lea ecx, [esp + 0xc4]
mov byte [esp + 0x340], 8
call fcn.0050ae80
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x340], 0x2a
call fcn.004c73c0
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x340], 0x29
call fcn.005061b0
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x340], 2
call fcn.00418e50
mov eax, dword [esp + 0x54]
mov byte [esp + 0x340], 1
test eax, eax
je 0x506c79
mov ecx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [ecx + 4]
mov eax, dword [esp + 0x48]
mov byte [esp + 0x340], 0
test eax, eax
je 0x506c96
mov edx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x340], 0xffffffff
test eax, eax
je 0x50aa70
jmp 0x50aa63
mov esi, dword [esp + 0x70]
mov byte [esp + 0x340], 0x20
cmp esi, eax
mov edi, eax
je 0x506cd4
push 0
mov ecx, esi
call fcn.0040fa70
add esi, 4
cmp esi, edi
jne 0x506cc4
lea ecx, [esp + 0x70]
mov byte [esp + 0x340], 0x14
call fcn.00418e50
lea ecx, [esp + 0xb4]
mov byte [esp + 0x340], 0x10
call fcn.00418e50
lea ecx, [esp + 0xc4]
mov byte [esp + 0x340], 8
call fcn.0050ae80
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x340], 0x22
call fcn.004c73c0
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x340], 0x21
call fcn.005061b0
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x340], 2
call fcn.00418e50
mov eax, dword [esp + 0x54]
mov byte [esp + 0x340], 1
test eax, eax
je 0x506d66
mov ecx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [ecx + 4]
mov eax, dword [esp + 0x48]
mov byte [esp + 0x340], 0
test eax, eax
je 0x506c96
jmp 0x506c89
mov ecx, dword [esp + 0x30]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x18]
push eax
lea ecx, [esp + 0x38]
call fcn.00492a10
mov esi, dword [esp + 0x34]
mov byte [esp + 0x340], 0x2b
test esi, esi
jne 0x506ec1
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x340], 0x1e
test eax, eax
je 0x506dc5
mov ecx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [ecx + 4]
mov edi, dword [esp + 0x74]
mov esi, dword [esp + 0x70]
cmp esi, edi
mov byte [esp + 0x340], 0x2c
je 0x506de9
push 0
mov ecx, esi
call fcn.0040fa70
add esi, 4
cmp esi, edi
jne 0x506dd9
lea ecx, [esp + 0x70]
mov byte [esp + 0x340], 0x14
call fcn.00418e50
lea ecx, [esp + 0xb4]
mov byte [esp + 0x340], 0x10
call fcn.00418e50
lea ecx, [esp + 0xc4]
mov byte [esp + 0x340], 8
call fcn.0050ae80
lea ecx, [esp + 0x1b8]
mov byte [esp + 0x340], 0x2e
call fcn.004c73c0
lea ecx, [esp + 0x1ac]
mov byte [esp + 0x340], 0x2d
call fcn.005061b0
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x340], 2
call fcn.00418e50
mov eax, dword [esp + 0x54]
mov byte [esp + 0x340], 1
test eax, eax
je 0x506e7b
mov edx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x48]
mov byte [esp + 0x340], 0
test eax, eax
je 0x506e98
mov ecx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [ecx + 4]
mov eax, dword [esp + 0x30]
mov dword [esp + 0x340], 0xffffffff
test eax, eax
je 0x50aa70
mov edx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [edx + 4]
jmp 0x50aa70
lea ecx, [esp + 0x128]
call fcn.0050b540
lea eax, [esp + 0x1b]
lea ecx, [esp + 0x12c]
push eax
mov byte [esp + 0x344], 0x30
call fcn.0050e020
push esi
lea ecx, [esp + 0x12c]
mov byte [esp + 0x344], 0x32
call fcn.0050b550
mov ecx, dword [esp + 0x70]
mov byte [esp + 0x340], 0x33
mov esi, dword [ecx + 0x18]
lea ecx, [esp + 0x15c]
call fcn.0050b540
lea edx, [esp + 0x2b]
lea ecx, [esp + 0x160]
push edx
mov byte [esp + 0x344], 0x35
call fcn.0050e020
push esi
lea ecx, [esp + 0x160]
mov byte [esp + 0x344], 0x37
call fcn.0050b2d0
lea eax, [esp + 0x3b]
lea ecx, [esp + 0x47]
push eax
lea edx, [esp + 0x93]
push ecx
push edx
push 0x64
lea ecx, [esp + 0x1e0]
mov byte [esp + 0x350], 0x39
call fcn.0050b620
mov eax, dword [ebx + 0x40]
xor ebp, ebp
test eax, eax
mov byte [esp + 0x340], 0x3a
mov dword [esp + 0x1c], ebp
jle 0x5073e5
mov eax, dword [ebx + 0x3c]
mov dword [esp + 0x10], 0
test eax, eax
jle 0x5073d5
mov eax, dword [ebx + 0x38]
mov ecx, dword [esp + 0x10]
xor edx, edx
mov eax, dword [eax + ebp*4]
lea esi, [ecx + ecx]
lea ecx, [esp + 0x180]
mov dl, byte [esi + eax]
lea eax, [esp + 0x1d0]
push eax
push 0
mov dword [esp + 0x70], edx
call fcn.0043edd0
lea ecx, [esp + 0x68]
lea edx, [esp + 0x1c4]
push ecx
push edx
lea ecx, [esp + 0x1d8]
call fcn.0050bd40
mov eax, dword [esp + 0x1c4]
mov ecx, dword [esp + 0x180]
cmp eax, ecx
je 0x507086
mov ecx, dword [ebx + 0x38]
xor edx, edx
mov eax, dword [ecx + ebp*4]
lea ecx, [esp + 0x110]
mov dl, byte [esi + eax]
lea eax, [esp + 0x4c]
push eax
push ecx
lea ecx, [esp + 0x1d8]
mov dword [esp + 0x54], edx
call fcn.0050bd40
lea edx, [esp + 0x1d0]
lea ecx, [esp + 0xa8]
push edx
push 0
call fcn.0043edd0
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0xa8]
cmp eax, ecx
jne 0x50707b
mov eax, dword [esp + 0x4c]
lea edx, [esp + 0xa0]
mov dword [esp + 0xa0], eax
mov ecx, dword [esp + 0xa0]
mov dword [esp + 0xa4], ecx
push edx
lea ecx, [esp + 0x1d4]
call fcn.0050bc20
mov edi, dword [eax + 4]
add eax, 4
jmp 0x507386
mov edi, dword [eax + 8]
add eax, 8
jmp 0x507386
mov eax, dword [esp + 0x348]
xor edx, edx
push 0
mov ecx, dword [eax + 0x38]
mov eax, dword [ecx + ebp*4]
mov ebp, dword [esp + 0x1b0]
mov dl, byte [esi + eax]
mov eax, dword [esp + 0x38]
mov esi, edx
push eax
mov ecx, dword [eax]
mov edi, eax
shl esi, 5
add esi, ebp
call dword [ecx + 0x18]
mov dword [esp + 0x14], eax
mov edx, dword [edi]
fild dword [esp + 0x14]
push 0
push edi
fmul dword [esi + 0x1c]
fstp dword [esp + 0x2c]
call dword [edx + 0x18]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul dword [esi + 0xc]
fadd dword [esp + 0x24]
fmul dword [0x545330]
call sub.msvcrt.dll__ftol
mov edi, eax
mov eax, dword [esp + 0x34]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
fild dword [esp + 0x14]
mov edx, dword [eax]
push 0
push eax
fmul dword [esi + 8]
fstp dword [esp + 0x2c]
call dword [edx + 0x14]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul dword [esi + 0x18]
fadd dword [esp + 0x24]
fmul dword [0x545330]
call sub.msvcrt.dll__ftol
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x34]
push 0
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x34]
fild dword [esp + 0x14]
mov edx, dword [eax]
push 0
push eax
fmul dword [esi + 4]
fstp dword [esp + 0x2c]
call dword [edx + 0x18]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul dword [esi + 0x14]
fadd dword [esp + 0x24]
fmul dword [0x545330]
call sub.msvcrt.dll__ftol
mov ebx, eax
mov eax, dword [esp + 0x34]
push 0
push eax
mov ecx, dword [eax]
mov ebp, eax
call dword [ecx + 0x14]
mov dword [esp + 0x14], eax
mov edx, dword [ebp]
fild dword [esp + 0x14]
push 0
push ebp
fmul dword [esi + 0x10]
fstp dword [esp + 0x2c]
call dword [edx + 0x14]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
fmul dword [esi]
fadd dword [esp + 0x24]
fmul dword [0x545330]
call sub.msvcrt.dll__ftol
mov ecx, dword [esp + 0x40]
cmp ebx, edi
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], ebx
mov dword [esp + 0x84], ecx
mov dword [esp + 0x88], edi
mov dword [esp + 0x24], ebx
jg 0x5071d7
mov dword [esp + 0x24], edi
cmp eax, ecx
mov dword [esp + 0x40], eax
jg 0x5071e3
mov dword [esp + 0x40], ecx
cmp ebx, edi
mov dword [esp + 0x50], ebx
jl 0x5071ef
mov dword [esp + 0x50], edi
cmp eax, ecx
mov dword [esp + 0x14], eax
jl 0x5071fb
mov dword [esp + 0x14], ecx
lea eax, [esp + 0x24]
lea ecx, [esp + 0x40]
push eax
lea edx, [esp + 0x54]
push ecx
lea eax, [esp + 0x1c]
push edx
push eax
lea ecx, [esp + 0x8c]
call fcn.0050b170
mov esi, dword [esp + 0x7c]
mov eax, dword [esp + 0x84]
mov edi, dword [esp + 0x88]
mov edx, dword [esp + 0x80]
xor ecx, ecx
xor ebp, ebp
xor ebx, ebx
cmp esi, eax
mov dword [esp + 0x24], esi
jge 0x5072a0
cmp edx, edi
jge 0x50728f
mov eax, dword [esp + 0x12c]
sub edi, edx
lea esi, [eax + edx*4]
mov eax, dword [esi]
mov edx, dword [esp + 0x24]
add esi, 4
mov eax, dword [eax + edx*4]
xor edx, edx
mov dword [esp + 0x14], eax
mov dl, byte [esp + 0x16]
add ecx, edx
xor edx, edx
mov dl, ah
and eax, 0xff
add ebp, edx
add ebx, eax
dec edi
jne 0x507252
mov eax, dword [esp + 0x84]
mov edx, dword [esp + 0x80]
mov edi, dword [esp + 0x88]
mov esi, dword [esp + 0x24]
inc esi
cmp esi, eax
mov dword [esp + 0x24], esi
jl 0x507242
mov esi, dword [esp + 0x7c]
sub edi, edx
sub eax, esi
mov esi, edi
imul esi, eax
test esi, esi
jle 0x5072c5
mov eax, ecx
xor edx, edx
div esi
xor edx, edx
mov ecx, eax
mov eax, ebp
div esi
xor edx, edx
mov ebp, eax
mov eax, ebx
div esi
mov ebx, eax
and ecx, 0xff
mov eax, dword [esp + 0x348]
or ecx, 0xffffff00
and ebp, 0xff
shl ecx, 8
mov edx, dword [esp + 0x1c]
or ecx, ebp
shl ecx, 8
and ebx, 0xff
or ecx, ebx
mov edi, ecx
mov ecx, dword [eax + 0x38]
mov eax, dword [ecx + edx*4]
mov ecx, dword [esp + 0x10]
add ecx, ecx
xor edx, edx
mov dl, byte [ecx + eax]
lea eax, [esp + 0x90]
mov dword [esp + 0x20], edx
lea edx, [esp + 0x20]
push edx
push eax
lea ecx, [esp + 0x1d8]
call fcn.0050bd40
lea ecx, [esp + 0x1d0]
push ecx
push 0
lea ecx, [esp + 0x64]
call fcn.0043edd0
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x5c]
cmp eax, ecx
jne 0x507376
mov edx, dword [esp + 0x20]
mov eax, dword [esp + 0xa0]
lea ecx, [esp + 0xe4]
mov dword [esp + 0xe4], edx
push ecx
lea ecx, [esp + 0x1d4]
mov dword [esp + 0xec], eax
call fcn.0050bc20
add eax, 4
jmp 0x507379
add eax, 8
mov ebp, dword [esp + 0x1c]
mov ebx, dword [esp + 0x348]
mov dword [eax], edi
lea edx, [ebp + ebp]
lea eax, [ebp + ebp + 2]
cmp edx, eax
jge 0x5073c1
mov eax, dword [esp + 0x10]
lea esi, [eax + eax + 2]
mov ecx, dword [esp + 0x10]
lea eax, [ecx + ecx]
cmp eax, esi
jge 0x5073b8
mov ecx, dword [esp + 0x160]
inc eax
cmp eax, esi
mov ecx, dword [ecx + edx*4]
mov dword [ecx + eax*4 - 4], edi
jl 0x5073a5
inc edx
lea eax, [ebp + ebp + 2]
cmp edx, eax
jl 0x50739a
mov eax, dword [esp + 0x10]
mov ecx, dword [ebx + 0x3c]
inc eax
cmp eax, ecx
mov dword [esp + 0x10], eax
jl 0x506f98
mov eax, dword [ebx + 0x40]
inc ebp
cmp ebp, eax
mov dword [esp + 0x1c], ebp
jl 0x506f85
lea ecx, [esp + 0x1d0]
mov byte [esp + 0x340], 0x38
call fcn.0050ad10
lea ecx, [esp + 0x160]
mov byte [esp + 0x340], 0x3b
call fcn.00418e50
mov eax, dword [esp + 0x15c]
mov byte [esp + 0x340], 0x33
test eax, eax
je 0x50742d
mov edx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [edx + 4]
lea ecx, [esp + 0x12c]
mov byte [esp + 0x340], 0x3c
call fcn.00418e50
mov eax, dword [esp + 0x128]
mov byte [esp + 0x340], 0x2b
test eax, eax
je 0x507461
mov ecx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [ecx + 4]
mov eax, dword [esp + 0x34]
mov byte [esp + 0x340], 0x26
test eax, eax
je 0x50747e
mov edx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x2c]
mov byte [esp + 0x340], 0x1e
test eax, eax
je 0x50749b
mov ecx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [ecx + 4]
mov eax, dword [esp + 0x350]
test eax, eax
je 0x5074ac
mov edx, dword [eax]
push eax
call dword [edx + 0x18]
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x128]
mov esi, dword [eax + 8]
call fcn.0050b540
lea ecx, [esp + 0x8f]
mov byte [esp + 0x340], 0x3e
push ecx
lea ecx, [esp + 0x130]
call fcn.0050e020
push esi
lea ecx, [esp + 0x12c]
mov byte [esp + 0x344], 0x40
call fcn.0050b2d0
mov ecx, dword [ebx + 0x48]
mov ebp, dword [ebx + 0x44]
sub ecx, ebp
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
mov dword [esp + 0x34], 0
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x507e0e
xor esi, esi
mov ebp, dword [esp + 0x348]
lea ecx, [esp + 0x1b]
mov byte [esp + 0x340], 0x42
push ecx
lea ecx, [esp + 0xac]
call fcn.0050e020
lea edx, [esp + 0x2b]
lea ecx, [esp + 0x5c]
push edx
mov byte [esp + 0x344], 0x44
call fcn.0050e020
mov eax, dword [ebp + 0x44]
mov byte [esp + 0x340], 0x45
lea edi, [esi + eax + 0x6c]
lea eax, [esp + 0x3b]
push eax
mov ecx, edi
call fcn.004ffc70
push eax
lea ecx, [esp + 0x94]
mov byte [esp + 0x344], 0x46
call fcn.0050e020
mov ecx, dword [edi + 4]
mov edx, dword [edi]
push ecx
push edx
lea ecx, [esp + 0x98]
mov byte [esp + 0x348], 0x48
call fcn.00406830
mov edi, dword [ebp + 0x44]
mov byte [esp + 0x340], 0x49
mov eax, dword [esi + edi + 4]
mov dword [esp + 0x24c], eax
mov ecx, dword [esi + edi + 8]
mov dword [esp + 0x250], ecx
lea ecx, [esi + edi + 0x18]
fld dword [esi + edi + 0xc]
push ecx
lea ecx, [esp + 0x264]
fstp dword [esp + 0x258]
mov edx, dword [esi + edi + 0x10]
mov dword [esp + 0x25c], edx
mov al, byte [esi + edi + 0x14]
mov byte [esp + 0x260], al
call fcn.004c9d40
lea edx, [esi + edi + 0x40]
lea ecx, [esp + 0x288]
push edx
mov byte [esp + 0x344], 0x4a
call fcn.004c9e90
lea eax, [esi + edi + 0x4c]
lea ecx, [esp + 0x294]
push eax
mov byte [esp + 0x344], 0x4b
call fcn.004c9e90
mov ecx, dword [esi + edi + 0x58]
lea eax, [esi + edi + 0x60]
mov dword [esp + 0x2a0], ecx
mov edx, dword [esi + edi + 0x5c]
push eax
lea ecx, [esp + 0x2ac]
mov byte [esp + 0x344], 0x4c
mov dword [esp + 0x2a8], edx
call fcn.0040ecd0
mov dword [esp + fcn.0051cbb0], 0x548edc
mov ecx, dword [esp + 0x90]
mov eax, dword [esp + 0x94]
mov byte [esp + 0x340], 0x4d
cmp ecx, eax
je 0x507778
lea edx, [esp + 0x90]
push edx
call fcn.004c2de0
add esp, 4
lea eax, [esp + 0x47]
lea ecx, [esp + 0x190]
push eax
mov byte [esp + 0x344], 0x4e
call fcn.0050e020
mov edi, 0x57e64c
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x340], 0x4f
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x57e64c
push ecx
push 0x57e64c
lea ecx, [esp + 0x198]
call fcn.004067c0
lea ecx, [esp + 0x9d]
mov byte [esp + 0x340], 0x51
push ecx
lea ecx, [esp + 0x1c8]
call fcn.0050e020
mov edi, 0x57f2d4
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x340], 0x52
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x57f2d4
push ecx
push 0x57f2d4
lea ecx, [esp + 0x1cc]
call fcn.004067c0
lea edx, [esp + 0x248]
lea eax, [esp + 0x190]
push edx
push eax
push 0
lea ecx, [esp + 0x1d0]
push 0
lea edx, [esp + 0xa0]
push ecx
push edx
mov byte [esp + 0x358], 0x53
call fcn.004f9e70
add esp, 0x18
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x340], 0x51
call fcn.00418e50
lea ecx, [esp + 0x190]
mov byte [esp + 0x340], 0x4e
call fcn.00418e50
mov ebp, dword [ebp + 0x44]
xor ebx, ebx
mov ecx, dword [esi + ebp + 0x7c]
mov eax, dword [esi + ebp + 0x78]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax - 1]
test ecx, ecx
jbe 0x5079d3
lea edx, [esp + 0x9f]
lea ecx, [esp + 0x110]
push edx
mov byte [esp + 0x344], 0x54
call fcn.0050e020
mov eax, dword [esp + 0x348]
lea ecx, [esp + 0x110]
push 0x3f800000
push ecx
mov eax, dword [eax + 0x44]
push ebx
mov byte [esp + 0x34c], 0x56
lea edx, [esi + eax]
push edx
call fcn.00510b50
fld dword [0x582af4]
fmul dword [0x545330]
lea eax, [esp + 0x120]
lea ecx, [esp + 0x16c]
push eax
push ecx
fstp dword [esp + 0x28]
call fcn.0050c1a0
fld dword [esp + 0x28]
fmul dword [0x545330]
add esp, 0x18
fstp dword [esp + 0x1c]
fld dword [esp + 0x168]
fadd dword [esp + 0x1c]
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
fld dword [esp + 0x164]
fadd dword [esp + 0x1c]
mov dword [esp + 0x68], eax
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
fld dword [esp + 0x160]
fadd dword [esp + 0x1c]
mov dword [esp + 0x20], eax
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
fld dword [esp + 0x15c]
fadd dword [esp + 0x1c]
mov dword [esp + 0x14], eax
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
mov dword [esp + 0x2c], eax
lea edx, [esp + 0x68]
lea eax, [esp + 0x20]
push edx
lea ecx, [esp + 0x18]
push eax
lea edx, [esp + 0x34]
push ecx
push edx
lea ecx, [esp + 0x17c]
call fcn.004f4120
lea eax, [esp + 0x16c]
lea ecx, [esp + 0x14c]
push eax
push ecx
call fcn.004f8fb0
add esp, 8
test eax, eax
jl 0x50798f
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x174]
mov ebp, eax
cmp eax, ecx
mov dword [esp + 0x14], ebp
jge 0x50798f
mov eax, dword [esp + 0x178]
mov edi, dword [esp + 0x170]
cmp edi, eax
mov dword [esp + 0x20], edi
jge 0x50797b
fild dword [esp + 0x14]
fmul dword [esp + 0x10]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x68]
fild dword [esp + 0x20]
mov edx, dword [esp + 0x68]
lea eax, [esp + 0xa0]
push 0
lea ecx, [esp + 0x1f8]
fmul dword [esp + 0x14]
push eax
push ecx
mov dword [esp + 0xac], edx
fadd dword [esp + 0x28]
fstp dword [esp + 0xb0]
call fcn.0050aba0
lea edx, [esp + 0x200]
lea eax, [esp + 0x11c]
push edx
push eax
call fcn.00504e80
add esp, 0x14
cmp eax, 2
je 0x507964
push edi
push ebp
lea ecx, [esp + 0x64]
call fcn.0050abc0
test al, al
je 0x50798f
mov eax, dword [esp + 0x178]
inc edi
cmp edi, eax
mov dword [esp + 0x20], edi
jl 0x507903
mov edi, dword [esp + 0x170]
mov ecx, dword [esp + 0x174]
inc ebp
cmp ebp, ecx
mov dword [esp + 0x14], ebp
jl 0x5078e7
lea ecx, [esp + 0x110]
mov byte [esp + 0x340], 0x4d
call fcn.00418e50
mov ecx, dword [esp + 0x348]
inc ebx
mov eax, dword [ecx + 0x44]
mov ecx, dword [esi + eax + 0x7c]
mov ebp, dword [esi + eax + 0x78]
sub ecx, ebp
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax - 1]
cmp ebx, ecx
jb 0x5077a2
mov eax, dword [esp + 0x2a0]
mov ecx, dword [esp + 0xdc]
mov edx, dword [esp + 0x2a4]
mov dword [esp + 0x40], eax
shr eax, 0x18
cmp eax, ecx
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], eax
jb 0x507c67
mov eax, dword [esp + 0x348]
xor ebp, ebp
mov eax, dword [eax + 0x44]
mov ecx, dword [esi + eax + 0x7c]
mov edx, dword [esi + eax + 0x78]
sub ecx, edx
mov eax, 0x66666667
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx - 1]
test edx, edx
jbe 0x507c67
lea eax, [esp + 0x9e]
lea ecx, [esp + 0x180]
push eax
mov byte [esp + 0x344], 0x57
call fcn.0050e020
mov ecx, dword [esp + 0x348]
mov edx, dword [esp + 0x284]
push edx
mov byte [esp + 0x344], 0x59
mov eax, dword [ecx + 0x44]
lea ecx, [esp + 0x184]
push ecx
push ebp
lea edx, [esi + eax]
push edx
call fcn.00510b50
fld dword [0x582af4]
fmul dword [0x545330]
lea eax, [esp + 0x190]
lea ecx, [esp + 0x210]
push eax
push ecx
fstp dword [esp + 0x28]
call fcn.0050c1a0
fld dword [esp + 0x28]
fmul dword [0x545330]
add esp, 0x18
fstp dword [esp + 0x1c]
fld dword [esp + 0x20c]
fadd dword [esp + 0x1c]
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
fld dword [esp + 0x208]
fadd dword [esp + 0x1c]
mov dword [esp + 0x68], eax
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
fld dword [esp + 0x204]
fadd dword [esp + 0x1c]
mov dword [esp + 0x20], eax
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
fld dword [esp + 0x200]
fadd dword [esp + 0x1c]
mov dword [esp + 0x14], eax
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
mov dword [esp + 0x4c], eax
lea edx, [esp + 0x68]
lea eax, [esp + 0x20]
push edx
lea ecx, [esp + 0x18]
push eax
lea edx, [esp + 0x54]
push ecx
push edx
lea ecx, [esp + 0x104]
call fcn.004f4120
lea eax, [esp + 0xf4]
lea ecx, [esp + 0x14c]
push eax
push ecx
call fcn.004f8fb0
add esp, 8
test eax, eax
jl 0x507c23
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xfc]
mov ebx, eax
cmp eax, ecx
mov dword [esp + 0x14], ebx
jge 0x507c23
mov eax, dword [esp + 0x100]
mov edi, dword [esp + 0xf8]
cmp edi, eax
mov dword [esp + 0x20], edi
jge 0x507c0f
fild dword [esp + 0x14]
fmul dword [esp + 0x10]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x68]
fild dword [esp + 0x20]
mov edx, dword [esp + 0x68]
lea eax, [esp + 0xe4]
push 0
lea ecx, [esp + 0x80]
fmul dword [esp + 0x14]
push eax
push ecx
mov dword [esp + 0xf0], edx
fadd dword [esp + 0x28]
fstp dword [esp + 0xf4]
call fcn.0050aba0
lea edx, [esp + 0x88]
lea eax, [esp + 0x18c]
push edx
push eax
call fcn.00504e80
add esp, 0x14
cmp eax, 2
je 0x507bf8
push edi
push ebx
lea ecx, [esp + 0xb0]
call fcn.0050abc0
test al, al
je 0x507c23
mov eax, dword [esp + 0x100]
inc edi
cmp edi, eax
mov dword [esp + 0x20], edi
jl 0x507b94
mov edi, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
inc ebx
cmp ebx, ecx
mov dword [esp + 0x14], ebx
jl 0x507b78
lea ecx, [esp + 0x180]
mov byte [esp + 0x340], 0x4d
call fcn.00418e50
mov ecx, dword [esp + 0x348]
inc ebp
mov eax, dword [ecx + 0x44]
mov ecx, dword [esi + eax + 0x7c]
mov ebx, dword [esi + eax + 0x78]
sub ecx, ebx
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax - 1]
cmp ebp, ecx
jb 0x507a30
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
sub edx, ecx
xor eax, eax
sar edx, 3
je 0x507cea
mov ebx, dword [esp + 0x2c]
mov edi, dword [esp + 0xf0]
shr ebx, 0x18
mov edx, dword [esp + 0xdc]
cmp ebx, edx
jb 0x507cad
mov ebp, dword [ecx + eax*8 + 4]
mov ecx, dword [ecx + eax*8]
mov edx, edi
sub edx, ebp
mov ebp, dword [esp + 0x12c]
mov edx, dword [ebp + edx*4 - 4]
mov ebp, dword [esp + 0x2c]
jmp 0x507cd3
cmp dword [esp + 0x24], edx
jae 0x507cda
mov ebp, dword [ecx + eax*8 + 4]
mov edx, edi
sub edx, ebp
mov ebp, dword [esp + 0x12c]
mov ecx, dword [ecx + eax*8]
mov edx, dword [ebp + edx*4 - 4]
mov ebp, dword [esp + 0xc4]
mov ebp, dword [ebp + 0x74]
mov dword [edx + ecx*4], ebp
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x60]
inc eax
sub edx, ecx
sar edx, 3
cmp eax, edx
jb 0x507c86
jmp 0x507cf1
mov edi, dword [esp + 0xf0]
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x24]
cmp ecx, eax
jb 0x507d4c
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xa8]
sub edx, ecx
xor eax, eax
sar edx, 3
je 0x507d4c
mov ebx, dword [esp + 0x40]
mov ebp, dword [ecx + eax*8 + 4]
mov ecx, dword [ecx + eax*8]
mov edx, edi
sub edx, ebp
mov ebp, dword [esp + 0x12c]
inc eax
mov edx, dword [ebp + edx*4 - 4]
mov dword [edx + ecx*4], ebx
mov edx, dword [esp + 0xac]
mov ecx, dword [esp + 0xa8]
sub edx, ecx
sar edx, 3
cmp eax, edx
jb 0x507d1b
lea ecx, [esp + 0x2a8]
mov byte [esp + 0x340], 0x5c
call fcn.00418e50
lea ecx, [esp + 0x294]
mov byte [esp + 0x340], 0x5b
call fcn.004783d0
lea ecx, [esp + 0x288]
mov byte [esp + 0x340], 0x5a
call fcn.004783d0
lea ecx, [esp + 0x274]
mov byte [esp + 0x340], 0x49
call fcn.00418e50
lea ecx, [esp + 0x90]
mov byte [esp + 0x340], 0x45
call fcn.00418e50
lea ecx, [esp + 0x5c]
mov byte [esp + 0x340], 0x43
call fcn.005061b0
lea ecx, [esp + 0xa8]
mov byte [esp + 0x340], 0x41
call fcn.005061b0
mov eax, dword [esp + 0x348]
mov edi, dword [esp + 0x34]
inc edi
add esi, 0x94
mov ecx, dword [eax + 0x48]
mov edx, dword [eax + 0x44]
sub ecx, edx
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
mov dword [esp + 0x34], edi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp edi, edx
jb 0x50751b
lea ecx, [esp + 0x12c]
mov byte [esp + 0x340], 0x5d
call fcn.00418e50
mov eax, dword [esp + 0x128]
mov byte [esp + 0x340], 0x1e
test eax, eax
je 0x507e42
mov ecx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [ecx + 4]
mov eax, dword [esp + 0x350]
test eax, eax
je 0x507e53
mov edx, dword [eax]
push eax
call dword [edx + 0x18]
mov eax, dword [esp + 0x70]
lea ecx, [esp + 0x15c]
mov esi, dword [eax + 0xc]
call fcn.0050b540
lea ecx, [esp + 0x9e]
mov byte [esp + 0x340], 0x5f
push ecx
lea ecx, [esp + 0x164]
call fcn.0050e020
push esi
lea ecx, [esp + 0x160]
mov byte [esp + 0x344], 0x61
call fcn.0050b2d0
mov edx, dword [esp + 0x70]
lea ecx, [esp + 0x128]
mov byte [esp + 0x340], 0x62
mov esi, dword [edx + 0x10]
call fcn.0050b540
lea eax, [esp + 0x9f]
lea ecx, [esp + 0x12c]
push eax
mov byte [esp + 0x344], 0x64
call fcn.0050e020
push esi
lea ecx, [esp + 0x12c]
mov byte [esp + 0x344], 0x66
call fcn.0050b2d0
mov eax, dword [esp + 0x348]
mov dword [esp + 0x4c], 0
mov ecx, dword [eax + 0x54]
mov ebp, dword [eax + 0x50]
sub ecx, ebp
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
je 0x50896b
xor ebp, ebp
mov ebx, dword [esp + 0x348]
lea edx, [esp + 0x9d]
lea ecx, [esp + 0x90]
push edx
mov byte [esp + 0x344], 0x68
call fcn.0050e020
lea eax, [esp + 0x8f]
lea ecx, [esp + 0x5c]
push eax
mov byte [esp + 0x344], 0x6a
call fcn.0050e020
mov esi, dword [ebx + 0x50]
lea ecx, [esp + 0x1b]
push ecx
mov byte [esp + 0x344], 0x6b
lea esi, [esi + ebp + 0x6c]
mov ecx, esi
call fcn.004ffc70
push eax
lea ecx, [esp + 0xac]
mov byte [esp + 0x344], 0x6c
call fcn.0050e020
mov edx, dword [esi + 4]
mov eax, dword [esi]
push edx
push eax
lea ecx, [esp + 0xb0]
mov byte [esp + 0x348], 0x6e
call fcn.00406830
mov esi, dword [ebx + 0x50]
mov byte [esp + 0x340], 0x6f
mov ecx, dword [esi + ebp + 4]
mov dword [esp + 0x24c], ecx
mov edx, dword [esi + ebp + 8]
mov dword [esp + 0x250], edx
lea edx, [esi + ebp + 0x18]
fld dword [esi + ebp + 0xc]
push edx
fstp dword [esp + 0x258]
mov eax, dword [esi + ebp + 0x10]
mov dword [esp + 0x25c], eax
mov cl, byte [esi + ebp + 0x14]
mov byte [esp + 0x260], cl
lea ecx, [esp + 0x264]
call fcn.004c9d40
lea eax, [esi + ebp + 0x40]
lea ecx, [esp + 0x288]
push eax
mov byte [esp + 0x344], 0x70
call fcn.004c9e90
lea ecx, [esi + ebp + 0x4c]
mov byte [esp + 0x340], 0x71
push ecx
lea ecx, [esp + 0x298]
call fcn.004c9e90
mov edx, dword [esi + ebp + 0x58]
lea ecx, [esi + ebp + 0x60]
mov dword [esp + 0x2a0], edx
mov eax, dword [esi + ebp + 0x5c]
push ecx
lea ecx, [esp + 0x2ac]
mov byte [esp + 0x344], 0x72
mov dword [esp + 0x2a8], eax
call fcn.0040ecd0
mov dword [esp + fcn.0051cbb0], 0x548edc
mov edx, dword [esp + 0xa8]
mov eax, dword [esp + 0xac]
mov byte [esp + 0x340], 0x73
cmp edx, eax
je 0x508175
lea eax, [esp + 0xa8]
push eax
call fcn.004c2de0
add esp, 4
lea ecx, [esp + 0x2b]
mov byte [esp + 0x340], 0x74
push ecx
lea ecx, [esp + 0x1c8]
call fcn.0050e020
mov edi, 0x57e64c
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x340], 0x75
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x57e64c
push ecx
push 0x57e64c
lea ecx, [esp + 0x1cc]
call fcn.004067c0
lea edx, [esp + 0x3b]
lea ecx, [esp + 0x190]
push edx
mov byte [esp + 0x344], 0x77
call fcn.0050e020
mov edi, 0x57f2d4
or ecx, 0xffffffff
xor eax, eax
mov byte [esp + 0x340], 0x78
repne scasb al, byte es:[edi]
not ecx
dec ecx
add ecx, 0x57f2d4
push ecx
push 0x57f2d4
lea ecx, [esp + 0x198]
call fcn.004067c0
lea eax, [esp + 0x248]
lea ecx, [esp + 0x1c4]
push eax
push ecx
push 0
lea edx, [esp + 0x19c]
push 0
lea eax, [esp + 0xb8]
push edx
push eax
mov byte [esp + 0x358], 0x79
call fcn.004f9e70
add esp, 0x18
lea ecx, [esp + 0x190]
mov byte [esp + 0x340], 0x77
call fcn.00418e50
lea ecx, [esp + 0x1c4]
mov byte [esp + 0x340], 0x74
call fcn.00418e50
mov ebx, dword [ebx + 0x50]
xor edi, edi
mov ecx, dword [ebx + ebp + 0x7c]
mov eax, dword [ebx + ebp + 0x78]
sub ecx, eax
mov eax, 0x66666667
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx - 1]
test edx, edx
jbe 0x5083cc
lea eax, [esp + 0x47]
lea ecx, [esp + 0x110]
push eax
mov byte [esp + 0x344], 0x7a
call fcn.0050e020
mov ecx, dword [esp + 0x348]
lea edx, [esp + 0x110]
push 0x3f800000
push edx
mov eax, dword [ecx + 0x50]
push edi
add eax, ebp
mov byte [esp + 0x34c], 0x7c
push eax
call fcn.00510b50
fld dword [0x582af4]
fmul dword [0x545330]
lea eax, [esp + 0x120]
lea ecx, [esp + 0x210]
push eax
push ecx
fstp dword [esp + 0x28]
call fcn.0050c1a0
fld dword [esp + 0x28]
fmul dword [0x545330]
add esp, 0x18
fstp dword [esp + 0x1c]
fld dword [esp + 0x20c]
fadd dword [esp + 0x1c]
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
fld dword [esp + 0x208]
fadd dword [esp + 0x1c]
mov dword [esp + 0x68], eax
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
fld dword [esp + 0x204]
fadd dword [esp + 0x1c]
mov dword [esp + 0x20], eax
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
fld dword [esp + 0x200]
fadd dword [esp + 0x1c]
mov dword [esp + 0x14], eax
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
mov dword [esp + 0x2c], eax
lea edx, [esp + 0x68]
lea eax, [esp + 0x20]
push edx
lea ecx, [esp + 0x18]
push eax
lea edx, [esp + 0x34]
push ecx
push edx
lea ecx, [esp + 0x104]
call fcn.004f4120
lea eax, [esp + 0xf4]
lea ecx, [esp + 0x14c]
push eax
push ecx
call fcn.004f8fb0
add esp, 8
test eax, eax
jl 0x508388
mov eax, dword [esp + 0xf4]
mov ecx, dword [esp + 0xfc]
mov ebx, eax
cmp eax, ecx
mov dword [esp + 0x14], ebx
jge 0x508388
mov eax, dword [esp + 0x100]
mov esi, dword [esp + 0xf8]
cmp esi, eax
mov dword [esp + 0x20], esi
jge 0x508374
fild dword [esp + 0x14]
fmul dword [esp + 0x10]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x68]
fild dword [esp + 0x20]
mov edx, dword [esp + 0x68]
lea eax, [esp + 0xa0]
push 0
lea ecx, [esp + 0x80]
fmul dword [esp + 0x14]
push eax
push ecx
mov dword [esp + 0xac], edx
fadd dword [esp + 0x28]
fstp dword [esp + 0xb0]
call fcn.0050aba0
lea edx, [esp + 0x88]
lea eax, [esp + 0x11c]
push edx
push eax
call fcn.00504e80
add esp, 0x14
cmp eax, 2
je 0x50835d
push esi
push ebx
lea ecx, [esp + 0x64]
call fcn.0050abc0
test al, al
je 0x508388
mov eax, dword [esp + 0x100]
inc esi
cmp esi, eax
mov dword [esp + 0x20], esi
jl 0x5082fc
mov esi, dword [esp + 0xf8]
mov ecx, dword [esp + 0xfc]
inc ebx
cmp ebx, ecx
mov dword [esp + 0x14], ebx
jl 0x5082e0
lea ecx, [esp + 0x110]
mov byte [esp + 0x340], 0x73
call fcn.00418e50
mov ecx, dword [esp + 0x348]
inc edi
mov eax, dword [ecx + 0x50]
mov ecx, dword [eax + ebp + 0x7c]
mov ebx, dword [eax + ebp + 0x78]
sub ecx, ebx
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax - 1]
cmp edi, ecx
jb 0x50819f
mov eax, dword [esp + 0x2a0]
mov esi, dword [esp + 0xdc]
mov edx, dword [esp + 0x2a4]
mov edi, eax
shr edi, 0x18
cmp edi, esi
mov dword [esp + 0x34], eax
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], edi
jb 0x508666
mov eax, dword [esp + 0x348]
xor ebx, ebx
mov eax, dword [eax + 0x50]
mov ecx, dword [eax + ebp + 0x7c]
mov edx, dword [eax + ebp + 0x78]
sub ecx, edx
mov eax, 0x66666667
imul ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
lea edx, [edx + ecx - 1]
test edx, edx
jbe 0x508666
lea eax, [esp + 0x5b]
lea ecx, [esp + 0x180]
push eax
mov byte [esp + 0x344], 0x7d
call fcn.0050e020
mov ecx, dword [esp + 0x348]
mov edx, dword [esp + 0x284]
push edx
mov byte [esp + 0x344], 0x7f
mov eax, dword [ecx + 0x50]
lea ecx, [esp + 0x184]
push ecx
push ebx
lea edx, [eax + ebp]
push edx
call fcn.00510b50
fld dword [0x582af4]
fmul dword [0x545330]
lea eax, [esp + 0x190]
lea ecx, [esp + 0x1e0]
push eax
push ecx
fstp dword [esp + 0x28]
call fcn.0050c1a0
fld dword [esp + 0x28]
fmul dword [0x545330]
add esp, 0x18
fst dword [esp + 0x1c]
fadd dword [esp + 0x1dc]
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
fld dword [esp + 0x1c]
fadd dword [esp + 0x1d8]
mov dword [esp + 0x68], eax
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
fld dword [esp + 0x1c]
fadd dword [esp + 0x1d4]
mov dword [esp + 0x20], eax
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
fld dword [esp + 0x1c]
fadd dword [esp + 0x1d0]
mov dword [esp + 0x14], eax
fdiv dword [esp + 0x10]
call sub.msvcrt.dll__ftol
mov dword [esp + 0x40], eax
lea edx, [esp + 0x68]
lea eax, [esp + 0x20]
push edx
lea ecx, [esp + 0x18]
push eax
lea edx, [esp + 0x48]
push ecx
push edx
lea ecx, [esp + 0x17c]
call fcn.004f4120
lea eax, [esp + 0x16c]
lea ecx, [esp + 0x14c]
push eax
push ecx
call fcn.004f8fb0
add esp, 8
test eax, eax
jl 0x508617
mov eax, dword [esp + 0x16c]
mov ecx, dword [esp + 0x174]
mov edi, eax
cmp eax, ecx
mov dword [esp + 0x14], edi
jge 0x508617
mov eax, dword [esp + 0x178]
mov esi, dword [esp + 0x170]
cmp esi, eax
mov dword [esp + 0x20], esi
jge 0x508603
fild dword [esp + 0x14]
fmul dword [esp + 0x10]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x68]
fild dword [esp + 0x20]
mov edx, dword [esp + 0x68]
lea eax, [esp + 0xe4]
push 0
lea ecx, [esp + 0x1f8]
fmul dword [esp + 0x14]
push eax
push ecx
mov dword [esp + 0xf0], edx
fadd dword [esp + 0x28]
fstp dword [esp + 0xf4]
call fcn.0050aba0
lea edx, [esp + 0x200]
lea eax, [esp + 0x18c]
push edx
push eax
call fcn.00504e80
add esp, 0x14
cmp eax, 2
je 0x5085ec
push esi
push edi
lea ecx, [esp + 0x98]
call fcn.0050abc0
test al, al
je 0x508617
mov eax, dword [esp + 0x178]
inc esi
cmp esi, eax
mov dword [esp + 0x20], esi
jl 0x508588
mov esi, dword [esp + 0x170]
mov ecx, dword [esp + 0x174]
inc edi
cmp edi, ecx
mov dword [esp + 0x14], edi
jl 0x50856c
lea ecx, [esp + 0x180]
mov byte [esp + 0x340], 0x73
call fcn.00418e50
mov ecx, dword [esp + 0x348]
inc ebx
mov eax, dword [ecx + 0x50]
mov ecx, dword [eax + ebp + 0x7c]
mov edi, dword [eax + ebp + 0x78]
sub ecx, edi
mov eax, 0x66666667
imul ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
lea ecx, [edx + eax - 1]
cmp ebx, ecx
jb 0x50842b
mov esi, dword [esp + 0xdc]
mov edi, dword [esp + 0x2c]
mov eax, dword [esp + 0x24c]
mov edx, dword [esp + 0x24]
cmp eax, 3
jne 0x508798
shr edx, 0x18
cmp edx, esi
jb 0x5086d5
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
sub edx, ecx
xor eax, eax
sar edx, 3
mov edx, dword [esp + 0xf0]
je 0x508739
mov edi, dword [esp + 0x24]
mov ebx, dword [ecx + eax*8 + 4]
mov ecx, dword [ecx + eax*8]
mov esi, edx
sub esi, ebx
mov ebx, dword [esp + 0x160]
inc eax
mov esi, dword [ebx + esi*4 - 4]
mov dword [esi + ecx*4], edi
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
sub esi, ecx
sar esi, 3
cmp eax, esi
jb 0x5086a1
mov esi, dword [esp + 0xdc]
jmp 0x508739
cmp edi, esi
jae 0x508732
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
sub edx, ecx
xor eax, eax
sar edx, 3
mov edx, dword [esp + 0xf0]
je 0x508739
mov edi, dword [ecx + eax*8 + 4]
mov esi, edx
mov ecx, dword [ecx + eax*8]
sub esi, edi
mov edi, dword [esp + 0x160]
inc eax
mov esi, dword [edi + esi*4 - 4]
mov edi, dword [esp + 0xc4]
mov edi, dword [edi + 0xac]
mov dword [esi + ecx*4], edi
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
sub esi, ecx
sar esi, 3
cmp eax, esi
jb 0x5086f1
mov esi, dword [esp + 0xdc]
jmp 0x508739
mov edx, dword [esp + 0xf0]
cmp dword [esp + 0x2c], esi
jb 0x5088a9
mov esi, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
sub esi, ecx
xor eax, eax
sar esi, 3
je 0x5088a9
mov edi, dword [esp + 0x34]
mov ebx, dword [ecx + eax*8 + 4]
mov ecx, dword [ecx + eax*8]
mov esi, edx
sub esi, ebx
mov ebx, dword [esp + 0x160]
inc eax
mov esi, dword [ebx + esi*4 - 4]
mov dword [esi + ecx*4], edi
mov esi, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
sub esi, ecx
sar esi, 3
cmp eax, esi
jb 0x508762
jmp 0x5088a9
shr edx, 0x18
cmp edx, esi
jb 0x5087f3
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
sub edx, ecx
xor eax, eax
sar edx, 3
mov edx, dword [esp + 0xf0]
je 0x508857
mov edi, dword [esp + 0x24]
mov ebx, dword [ecx + eax*8 + 4]
mov ecx, dword [ecx + eax*8]
mov esi, edx
sub esi, ebx
mov ebx, dword [esp + 0x12c]
inc eax
mov esi, dword [ebx + esi*4 - 4]
mov dword [esi + ecx*4], edi
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
sub esi, ecx
sar esi, 3
cmp eax, esi
jb 0x5087bf
mov esi, dword [esp + 0xdc]
jmp 0x508857
cmp edi, esi
jae 0x508850
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
sub edx, ecx
xor eax, eax
sar edx, 3
mov edx, dword [esp + 0xf0]
je 0x508857
mov edi, dword [ecx + eax*8 + 4]
mov esi, edx
mov ecx, dword [ecx + eax*8]
sub esi, edi
mov edi, dword [esp + 0x12c]
inc eax
mov esi, dword [edi + esi*4 - 4]
mov edi, dword [esp + 0xc4]
mov edi, dword [edi + 0xe4]
mov dword [esi + ecx*4], edi
mov esi, dword [esp + 0x60]
mov ecx, dword [esp + 0x5c]
sub esi, ecx
sar esi, 3
cmp eax, esi
jb 0x50880f
mov esi, dword [esp + 0xdc]
jmp 0x508857
mov edx, dword [esp + 0xf0]
cmp dword [esp + 0x2c], esi
jb 0x5088a9
mov esi, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
sub esi, ecx
xor eax, eax
sar esi, 3
je 0x5088a9
mov edi, dword [esp + 0x34]
mov ebx, dword [ecx + eax*8 + 4]
mov ecx, dword [ecx + eax*8]
mov esi, edx
sub esi, ebx
mov ebx, dword [esp + 0x12c]
inc eax
mov esi, dword [ebx + esi*4 - 4]
mov dword [esi + ecx*4], edi
mov esi, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
sub esi, ecx
sar esi, 3
cmp eax, esi
jb 0x508878
lea ecx, [esp + 0x2a8]
mov byte [esp + 0x340], 0x82
call fcn.00418e50
lea ecx, [esp + 0x294]
mov byte [esp + 0x340], 0x81
call fcn.004783d0
lea ecx, [esp + 0x288]
mov byte [esp + 0x340], 0x80
call fcn.004783d0
lea ecx, [esp + 0x274]
mov byte [esp + 0x340], 0x6f
call fcn.00418e50
lea ecx, [esp + 0xa8]
mov byte [esp + 0x340], 0x6b
call fcn.00418e50
lea ecx, [esp + 0x5c]
mov byte [esp + 0x340], 0x69
call fcn.005061b0
lea ecx, [esp + 0x90]
mov byte [esp + 0x340], 0x67
call fcn.005061b0
mov eax, dword [esp + 0x348]
mov esi, dword [esp + 0x4c]
inc esi
add ebp, 0x94
mov ecx, dword [eax + 0x54]
mov edx, dword [eax + 0x50]
sub ecx, edx
mov eax, 0xdd67c8a7
imul ecx
add edx, ecx
mov dword [esp + 0x4c], esi
sar edx, 7
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp esi, edx
jb 0x507f15
lea ecx, [esp + 0x12c]
mov byte [esp + 0x340], 0x83
call fcn.00418e50
mov eax, dword [esp + 0x128]
xor ebx, ebx
cmp eax, ebx
mov byte [esp + 0x340], 0x62
je 0x5089a1
mov ecx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [ecx + 4]
lea ecx, [esp + 0x160]
mov byte [esp + 0x340], 0x84
call fcn.00418e50
mov eax, dword [esp + 0x15c]
mov byte [esp + 0x340], 0x1e
cmp eax, ebx
je 0x5089d5
mov edx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x350]
cmp eax, ebx
je 0x5089e6
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
lea edx, [esp + 0x5b]
lea eax, [esp + 0x9e]
push edx
lea ecx, [esp + 0xa3]
push eax
push ecx
push 0x64
lea ecx, [esp + 0x148]
mov byte [esp + 0x350], 0x85
call fcn.0050b760
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0xc4]
mov byte [esp + 0x340], 0x86
mov eax, dword [edx + 0x14]
lea esi, [ecx + 0x11c]
push eax
lea ecx, [esp + 0x1d4]
call fcn.0050af60
mov byte [esp + 0x340], 0x87
mov edx, dword [esi]
lea eax, [esp + 0x14c]
lea ecx, [esp + 0x1e4]
push eax
mov dword [esp + 0x1e4], edx
call fcn.004da530
mov ecx, dword [esp + 0x70]
mov edx, dword [esp + 0xc4]
mov byte [esp + 0x340], 0x88
mov eax, dword [ecx + 4]
lea ecx, [esp + 0x2b4]
push eax
lea esi, [edx + 0x3c]
call fcn.0050af60
lea ecx, [esp + 0x14c]
mov byte [esp + 0x340], 0x89
mov eax, dword [esi]
push ecx
lea ecx, [esp + 0x2cc]
mov dword [esp + 0x2c8], eax
call fcn.004da530
mov edx, dword [esp + 0x70]
mov ecx, dword [esp + 0xc4]
mov byte [esp + 0x340], 0x8a
mov eax, dword [edx]
lea esi, [ecx + 4]
push eax
lea ecx, [esp + 0x2dc]
call fcn.0050af60
mov byte [esp + 0x340], 0x8b
mov edx, dword [esi]
lea eax, [esp + 0x14c]
lea ecx, [esp + 0x2ec]
push eax
mov dword [esp + 0x2ec], edx
call fcn.004da530
mov ebp, dword [esp + 0x348]
mov byte [esp + 0x340], 0x8c
mov dword [esp + 0x50], ebx
mov eax, 0x92492493
mov ecx, dword [ebp + 0x70]
mov edx, dword [ebp + 0x6c]
sub ecx, edx
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
je 0x509273
mov dword [esp + 0x14], ebx
mov eax, dword [ebp + 0x6c]
mov ecx, dword [esp + 0x54]
mov eax, dword [ebx + eax]
mov edx, dword [ecx]
push eax
push ecx
call dword [edx + 0x18]
mov esi, eax
test esi, esi
je 0x509240
mov eax, dword [esi + 0x20]
cmp eax, 2
jne 0x508d6b
mov eax, dword [ebp + 0x6c]
push 1
mov esi, dword [ebx + eax]
mov eax, dword [0x57f188]
push eax
mov ecx, dword [eax]
call dword [ecx + 0xc]
push esi
push eax
call fcn.0050c3f0
mov esi, eax
mov eax, dword [ebp + 0x6c]
add esp, 8
mov eax, dword [ebx + eax + 0x28]
mov edx, dword [esi]
push eax
push esi
call dword [edx + 0x3c]
mov ecx, dword [esi]
mov edi, eax
mov eax, dword [ebp + 0x6c]
mov edx, dword [ebx + eax + 0x28]
push edx
push esi
call dword [ecx + 0x40]
mov esi, dword [ebp + 0x6c]
mov dword [esp + 0x14], eax
fld dword [ebx + esi + 0x10]
fsub dword [edi + 4]
fadd qword [0x549070]
fmul qword [0x549068]
call sub.msvcrt.dll__ftol
fld dword [ebx + esi + 0xc]
mov dword [esp + 0x20], eax
fsub dword [edi]
fadd qword [0x549070]
fmul qword [0x549068]
call sub.msvcrt.dll__ftol
mov ecx, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
mov edx, eax
mov dword [esp + 0x68], edx
mov eax, dword [ecx + 0xc]
mov ecx, dword [ecx + 8]
add eax, esi
add ecx, edx
mov dword [esp + 0x7c], edx
mov dword [esp + 0x84], ecx
lea ecx, [esp + 0x7c]
mov dword [esp + 0x80], esi
mov dword [esp + 0x88], eax
call fcn.004f4170
mov ecx, dword [esp + 0x7c]
mov edx, dword [esp + 0x154]
cmp ecx, edx
jge 0x509240
mov eax, dword [esp + 0x80]
mov esi, dword [esp + 0x158]
cmp eax, esi
jge 0x509240
mov edi, dword [esp + 0x14c]
mov esi, dword [esp + 0x84]
cmp esi, edi
jle 0x509240
mov esi, dword [esp + 0x88]
cmp esi, dword [esp + 0x150]
jle 0x509240
cmp ecx, edi
mov esi, 1
jge 0x508c68
mov ecx, edi
xor esi, esi
mov dword [esp + 0x7c], ecx
mov edi, dword [esp + 0x150]
cmp eax, edi
jge 0x508c7e
mov eax, edi
xor esi, esi
mov dword [esp + 0x80], eax
mov edi, dword [esp + 0x84]
cmp edi, edx
jle 0x508c94
mov edi, edx
xor esi, esi
mov dword [esp + 0x84], edi
mov edx, dword [esp + 0x158]
cmp dword [esp + 0x88], edx
jle 0x508cad
mov dword [esp + 0x88], edx
jmp 0x508cb5
test esi, esi
jl 0x509240
cmp ecx, edi
jge 0x509240
mov edx, dword [esp + 0x88]
mov dword [esp + 0x2c], eax
cmp eax, edx
jge 0x508d5d
mov esi, dword [esp + 0xf0]
lea edx, [eax*4]
sub esi, eax
lea esi, [esi*4 - 4]
mov al, byte [esp + 0xd8]
test al, al
jne 0x508d1a
mov edi, dword [esp + 0x20]
mov eax, edx
shl edi, 2
sub eax, edi
mov edi, dword [esp + 0x14]
mov ebp, dword [esp + 0x68]
mov edi, dword [edi + 4]
mov eax, dword [edi + eax]
mov edi, ecx
sub edi, ebp
mov al, byte [edi + eax]
cmp al, byte [0x5491b0]
je 0x508d2e
mov eax, dword [esp + 0x2b8]
mov edi, dword [esp + 0x2c4]
mov eax, dword [esi + eax]
mov dword [eax + ecx*4], edi
mov edi, dword [esp + 0x2c]
mov ebp, dword [esp + 0x88]
mov eax, dword [esp + 0x80]
inc edi
add edx, 4
sub esi, 4
cmp edi, ebp
mov dword [esp + 0x2c], edi
jl 0x508ce7
mov ebp, dword [esp + 0x348]
mov edi, dword [esp + 0x84]
inc ecx
cmp ecx, edi
jl 0x508cbd
jmp 0x509240
cmp eax, 6
jne 0x508ebc
mov edi, dword [ebp + 0x6c]
mov eax, dword [0x548f1c]
mov ecx, dword [ebx + edi + 0x2c]
cmp ecx, eax
je 0x509240
lea esi, [ebx + edi + 0x2c]
lea edx, [esp + 0x5c]
push esi
push edx
lea ecx, [esp + 0x140]
call fcn.0050bd40
lea eax, [esp + 0x138]
lea ecx, [esp + 0x90]
push eax
push 0
call fcn.0043edd0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x90]
cmp eax, ecx
jne 0x508e0e
lea ecx, [esp + 0x210]
call fcn.0051e380
or dword [esp + 0x3c], 1
push eax
push esi
lea ecx, [esp + 0x304]
mov byte [esp + 0x348], 0x8d
call fcn.0050b8a0
or dword [esp + 0x3c], 2
push eax
lea ecx, [esp + 0x13c]
mov dword [esp + 0x344], 0x8e
call fcn.0050bc70
mov esi, eax
add esi, 4
jmp 0x508e11
lea esi, [eax + 8]
mov al, byte [esp + 0x3c]
mov dword [esp + 0x340], 0x8d
test al, 2
je 0x508e3a
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x300]
and al, 0xfd
mov dword [esp + 0x3c], eax
call fcn.00418e50
mov al, byte [esp + 0x3c]
mov dword [esp + 0x340], 0x8c
test al, 1
je 0x508e63
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x210]
and al, 0xfe
mov dword [esp + 0x3c], eax
call fcn.00418e50
add edi, ebx
mov ecx, esi
push edi
call fcn.00410bf0
lea ecx, [edi + 0xc]
lea edx, [esi + 0xc]
add edi, 0x2c
add esi, 0x2c
mov eax, dword [ecx]
mov dword [edx], eax
mov eax, dword [ecx + 4]
mov dword [edx + 4], eax
mov ecx, dword [ecx + 8]
mov dword [edx + 8], ecx
mov edx, dword [edi - 0x14]
mov dword [esi - 0x14], edx
mov eax, dword [edi - 0x10]
mov dword [esi - 0x10], eax
mov ecx, dword [edi - 0xc]
mov dword [esi - 0xc], ecx
mov edx, dword [edi - 8]
mov dword [esi - 8], edx
mov eax, dword [edi - 4]
mov dword [esi - 4], eax
mov ecx, dword [edi]
mov dword [esi], ecx
mov edx, dword [edi + 4]
mov dword [esi + 4], edx
mov eax, dword [edi + 8]
mov dword [esi + 8], eax
jmp 0x509240
lea ecx, [esp + 0x9d]
mov byte [esp + 0x340], 0x8f
push ecx
lea ecx, [esp + 0xac]
call fcn.0050e020
lea edx, [esp + 0xa8]
push 0x5c
add esi, 0x10
push edx
push esi
mov byte [esp + 0x34c], 0x91
call fcn.004c2600
mov edi, dword [esp + 0xb8]
mov esi, dword [esp + 0xb4]
mov ecx, edi
mov eax, 0x2aaaaaab
sub ecx, esi
add esp, 0xc
imul ecx
sar edx, 1
mov eax, edx
mov dword [esp + 0x2c], 0
shr eax, 0x1f
add edx, eax
je 0x509210
xor ebp, ebp
lea ecx, [esp + 0x8f]
add esi, ebp
push ecx
mov ecx, esi
call fcn.004ffc70
push eax
lea ecx, [esp + 0x114]
mov byte [esp + 0x344], 0x92
call fcn.0050e020
mov byte [esp + 0x340], 0x94
mov edx, dword [esi + 4]
mov eax, dword [esi]
push edx
push eax
lea ecx, [esp + 0x118]
call fcn.00406830
lea ecx, [esp + 0x110]
mov byte [esp + 0x340], 0x95
push ecx
call fcn.004c2de0
mov edi, 0x57ec50
or ecx, 0xffffffff
xor eax, eax
add esp, 4
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
push eax
push 0x57ec50
lea ecx, [esp + 0x11c]
call fcn.00405140
cmp eax, 0xffffffff
mov byte [esp + 0x340], 0x91
lea ecx, [esp + 0x110]
jne 0x508ffb
call fcn.00418e50
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0xa8]
inc edi
mov eax, 0x2aaaaaab
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0xac]
mov ecx, edi
add ebp, 0xc
sub ecx, esi
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, dword [esp + 0x2c]
cmp eax, edx
jb 0x508f28
jmp 0x509209
call fcn.00418e50
mov ecx, dword [esp + 0x348]
mov edi, dword [ecx + 0x6c]
fld dword [ebx + edi + 0xc]
fmul dword [0x546d70]
call sub.msvcrt.dll__ftol
fld dword [ebx + edi + 0x10]
fmul dword [0x546d70]
mov esi, eax
call sub.msvcrt.dll__ftol
mov ecx, dword [esp + 0xd0]
mov edi, dword [esp + 0x158]
sub edi, eax
mov ebp, 3
lea eax, [ecx + esi]
dec edi
mov dword [esp + 0x20], eax
mov dword [esp + 0x10], eax
mov eax, esi
lea edx, [ecx + ecx]
sub eax, ecx
sub ebp, edx
mov dword [esp + 0xe4], eax
mov dword [esp + 0x24], eax
mov eax, edi
mov dword [esp + 0xa0], ecx
sub eax, esi
mov dword [esp + 0x34], 0
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x1c], esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x4c], eax
test ebp, ebp
jge 0x509090
mov eax, dword [esp + 0x34]
lea ebp, [ebp + eax*4 + 6]
jmp 0x5090b5
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x2c]
sub ecx, eax
dec eax
mov dword [esp + 0x2c], eax
mov eax, dword [esp + 0x10]
lea ebp, [ebp + ecx*4 + 0xa]
mov ecx, dword [esp + 0x24]
inc ecx
dec eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x40]
inc eax
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x1c]
inc eax
dec ebx
cmp ebx, eax
mov dword [esp + 0x1c], eax
mov dword [esp + 0x40], ebx
jg 0x509101
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x10]
add edx, eax
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
push ecx
push ebx
lea ecx, [esp + 0x1d8]
call fcn.0050ac20
mov eax, dword [esp + 0x1c]
inc ebx
cmp ebx, eax
jle 0x5090e2
mov ebx, dword [esp + 0x40]
cmp ebx, dword [esp + 0x1c]
jg 0x509130
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x24]
add edx, eax
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
push ecx
push ebx
lea ecx, [esp + 0x1d8]
call fcn.0050ac20
mov eax, dword [esp + 0x1c]
inc ebx
cmp ebx, eax
jle 0x509115
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
cmp ebx, eax
jg 0x509165
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x1c]
add edx, eax
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
push ecx
push ebx
lea ecx, [esp + 0x1d8]
call fcn.0050ac20
mov eax, dword [esp + 0x10]
inc ebx
cmp ebx, eax
jle 0x50914a
mov ebx, dword [esp + 0x24]
mov eax, dword [esp + 0x10]
cmp ebx, eax
jg 0x50919a
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x40]
add edx, eax
mov dword [esp + 0x68], edx
mov ecx, dword [esp + 0x68]
push ecx
push ebx
lea ecx, [esp + 0x1d8]
call fcn.0050ac20
mov eax, dword [esp + 0x10]
inc ebx
cmp ebx, eax
jle 0x50917f
mov edx, dword [esp + 0x2c]
mov eax, dword [esp + 0x34]
cmp eax, edx
jle 0x509082
mov ebx, dword [esp + 0xe4]
mov eax, dword [esp + 0x20]
cmp ebx, eax
jg 0x5091ce
mov ebp, eax
push edi
push ebx
lea ecx, [esp + 0x1d8]
call fcn.0050ac20
inc ebx
cmp ebx, ebp
jle 0x5091bb
mov ebx, dword [esp + 0xa0]
mov eax, edi
sub eax, ebx
lea ecx, [esp + 0x1d0]
push eax
push esi
call fcn.0050ac20
add edi, ebx
lea ecx, [esp + 0x1d0]
push edi
push esi
call fcn.0050ac20
mov edi, dword [esp + 0xac]
mov esi, dword [esp + 0xa8]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x348]
cmp esi, edi
mov byte [esp + 0x340], 0x96
je 0x50922c
push 0
mov ecx, esi
call fcn.004cda70
add esi, 0xc
cmp esi, edi
jne 0x50921c
lea ecx, [esp + 0xa8]
mov byte [esp + 0x340], 0x8c
call fcn.00418e50
mov esi, dword [esp + 0x50]
add ebx, 0x38
inc esi
mov dword [esp + 0x14], ebx
mov dword [esp + 0x50], esi
mov ecx, dword [ebp + 0x70]
mov eax, dword [ebp + 0x6c]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
cmp esi, edx
jb 0x508b2c
mov dword [esp + 0x14], 0
mov ecx, dword [ebp + 0x94]
mov eax, dword [ebp + 0x90]
mov edi, dword [esp + 0x350]
sub ecx, eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
je 0x50986f
xor edi, edi
or eax, 0xffffffff
mov dword [esp + 0x10], edi
xor esi, esi
jmp 0x5092b8
xor esi, esi
or eax, 0xffffffff
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], eax
mov eax, dword [ebp + 0x90]
xor ebx, ebx
mov byte [esp + 0x47], 1
mov dword [esp + 0x24], ebx
mov dword [esp + 0x68], esi
mov dword [esp + 0x6c], esi
mov dword [esp + 0x20], esi
mov ecx, dword [edi + eax + 4]
sub ecx, dword [edi + eax]
sar ecx, 2
je 0x5096ac
lea edx, [esp + 0x138]
lea ecx, [esp + 0x90]
push edx
push 0
call fcn.0043edd0
mov eax, dword [ebp + 0x90]
lea ecx, [esp + 0x5c]
mov eax, dword [edi + eax]
lea eax, [eax + esi*4]
push eax
push ecx
lea ecx, [esp + 0x140]
call fcn.0050bd40
mov edx, dword [esp + 0x5c]
mov eax, dword [esp + 0x90]
cmp edx, eax
je 0x50968d
mov ebp, dword [ebp + 0x90]
lea eax, [esp + 0xa8]
lea ecx, [esp + 0x138]
mov edi, dword [edi + ebp]
lea edi, [edi + esi*4]
push edi
push eax
call fcn.0050bd40
lea ecx, [esp + 0x138]
push ecx
push 0
lea ecx, [esp + 0x118]
call fcn.0043edd0
mov esi, dword [esp + 0xa8]
mov eax, dword [esp + 0x110]
cmp esi, eax
jne 0x5093e3
lea ecx, [esp + 0x2fc]
call fcn.0051e380
mov ebp, dword [esp + 0x3c]
or ebp, 4
mov dword [esp + 0x3c], ebp
push eax
push edi
lea ecx, [esp + 0x250]
mov byte [esp + 0x348], 0x97
call fcn.0050b8a0
mov edx, ebp
or edx, 8
mov dword [esp + 0x3c], edx
push eax
lea ecx, [esp + 0x13c]
mov dword [esp + 0x344], 0x98
call fcn.0050bc70
mov esi, eax
add esi, 4
jmp 0x5093e6
add esi, 8
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x340], 0x97
test bl, 8
je 0x50940d
and ebx, 0xfffffff7
lea ecx, [esp + 0x24c]
mov dword [esp + 0x3c], ebx
call fcn.00418e50
test bl, 4
mov dword [esp + 0x340], 0x8c
je 0x509430
and ebx, 0xfffffffb
lea ecx, [esp + 0x2fc]
mov dword [esp + 0x3c], ebx
call fcn.00418e50
push esi
lea ecx, [esp + 0x214]
call fcn.0040ecd0
lea edx, [esi + 0xc]
add esi, 0x2c
mov eax, dword [edx]
mov dword [esp + 0x21c], eax
mov ecx, dword [edx + 4]
mov dword [esp + 0x220], ecx
mov edx, dword [edx + 8]
mov dword [esp + 0x224], edx
mov eax, dword [esi - 0x14]
mov dword [esp + 0x228], eax
mov ecx, dword [esi - 0x10]
mov dword [esp + 0x22c], ecx
mov edx, dword [esi - 0xc]
mov dword [esp + 0x230], edx
mov eax, dword [esi - 8]
mov dword [esp + 0x234], eax
mov ecx, dword [esi - 4]
mov dword [esp + 0x238], ecx
mov edx, dword [esi]
mov dword [esp + 0x23c], edx
mov eax, dword [esi + 4]
mov dword [esp + 0x240], eax
mov ecx, dword [esi + 8]
mov dword [esp + 0x244], ecx
mov eax, dword [0x57f188]
mov esi, dword [esp + 0x210]
mov byte [esp + 0x340], 0x99
push 1
mov edx, dword [eax]
push eax
call dword [edx + 0xc]
push esi
push eax
call fcn.0050c3f0
mov esi, eax
add esp, 8
test esi, esi
je 0x509666
mov edi, dword [esi + 0xac]
mov ebp, dword [esp + 0x238]
test edi, edi
lea edi, [ebp + ebp*4]
sete byte [esp + 0x47]
mov ebx, dword [esi + 0xbc]
shl edi, 2
fld dword [edi + ebx + 0xc]
call sub.msvcrt.dll__ftol
cmp dword [esp + 0x24], eax
jge 0x50951c
fld dword [edi + ebx + 0xc]
call sub.msvcrt.dll__ftol
mov dword [esp + 0x24], eax
mov dl, byte [esp + 0x5b]
mov dword [esp + 0x2c], ebp
mov eax, dword [esi + 0xcc]
mov ecx, dword [esi + 0xc8]
mov byte [esp + 0x3b], dl
mov edi, dword [esi + 0xcc]
lea edx, [esp + 0x3b]
push edx
lea edx, [esp + 0x30]
push edx
push eax
push ecx
call fcn.0043f370
add esp, 0x10
cmp eax, edi
jne 0x5095b6
mov dl, byte [esp + 0x5b]
mov eax, dword [esi + 0xfc]
mov ecx, dword [esi + 0xf8]
mov byte [esp + 0x2b], dl
mov edi, dword [esi + 0xfc]
lea edx, [esp + 0x2b]
push edx
lea edx, [esp + 0x30]
push edx
push eax
push ecx
call fcn.0043f370
add esp, 0x10
cmp eax, edi
jne 0x5095b6
mov dl, byte [esp + 0x5b]
mov eax, dword [esi + 0x12c]
mov ecx, dword [esi + 0x128]
mov byte [esp + 0x1b], dl
mov edi, dword [esi + 0x12c]
lea edx, [esp + 0x1b]
push edx
lea edx, [esp + 0x30]
push edx
push eax
push ecx
call fcn.0043f370
add esp, 0x10
cmp eax, edi
je 0x509604
mov eax, dword [esp + 0x238]
mov esi, dword [esi + 0xbc]
lea eax, [eax + eax*4]
fld dword [esi + eax*4 + 0x10]
call sub.msvcrt.dll__ftol
fld dword [esp + 0x21c]
fmul dword [0x546d70]
mov dword [esp + 0x68], eax
call sub.msvcrt.dll__ftol
fld dword [esp + 0x220]
fmul dword [0x546d70]
mov dword [esp + 0x7c], eax
call sub.msvcrt.dll__ftol
mov dword [esp + 0x80], eax
jmp 0x509666
mov ecx, dword [esp + 0x238]
push ecx
mov ecx, esi
call fcn.0050aa90
test al, al
je 0x509666
mov edx, dword [esp + 0x238]
push 0
push edx
mov ecx, esi
call fcn.0050ab80
fld dword [eax + 0x10]
call sub.msvcrt.dll__ftol
fld dword [esp + 0x21c]
fmul dword [0x546d70]
mov dword [esp + 0x6c], eax
call sub.msvcrt.dll__ftol
fld dword [esp + 0x220]
fmul dword [0x546d70]
mov dword [esp + 0x84], eax
call sub.msvcrt.dll__ftol
mov dword [esp + 0x88], eax
lea ecx, [esp + 0x210]
mov byte [esp + 0x340], 0x8c
call fcn.00418e50
mov ebp, dword [esp + 0x348]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov eax, dword [ebp + 0x90]
inc esi
mov dword [esp + 0x20], esi
mov ecx, dword [edi + eax + 4]
mov edx, dword [edi + eax]
sub ecx, edx
sar ecx, 2
cmp esi, ecx
jb 0x5092fe
mov eax, dword [esp + 0xe0]
test eax, eax
jbe 0x5096b9
mov ebx, eax
mov eax, dword [esp + 0x7c]
test eax, eax
jl 0x509832
mov eax, dword [esp + 0x84]
test eax, eax
jl 0x509832
lea ecx, [esp + 0x7c]
call fcn.004f4170
mov al, byte [esp + 0x47]
test al, al
je 0x509720
mov ecx, dword [esp + 0x7c]
mov eax, ebx
mov ebx, dword [esp + 0x84]
mov esi, dword [esp + 0x80]
cdq
sub eax, edx
mov edx, dword [esp + 0x68]
sar eax, 1
sub ecx, eax
add ebx, eax
mov eax, dword [esp + 0x6c]
sub esi, edx
mov dword [esp + 0x7c], ecx
mov dword [esp + 0x84], ebx
mov dword [esp + 0x80], esi
jmp 0x509759
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x7c]
mov eax, dword [esp + 0x84]
sub edx, ecx
mov dword [esp + 0x7c], edx
mov edx, dword [esp + 0x6c]
add eax, edx
mov dword [esp + 0x84], eax
mov eax, ebx
cdq
sub eax, edx
mov edx, dword [esp + 0x80]
sar eax, 1
sub edx, eax
mov dword [esp + 0x80], edx
mov ecx, dword [esp + 0x88]
lea edx, [esp + 0xa0]
add ecx, eax
push edx
mov dword [esp + 0x8c], ecx
mov eax, ecx
mov ecx, dword [esp + 0x88]
inc eax
inc ecx
mov dword [esp + 0xa4], eax
mov dword [esp + 0xe8], ecx
lea eax, [esp + 0xe8]
lea ecx, [esp + 0x84]
push eax
lea edx, [esp + 0x84]
push ecx
push edx
lea ecx, [esp + 0x104]
call fcn.004f4120
lea eax, [esp + 0xf4]
lea ecx, [esp + 0x14c]
push eax
push ecx
call fcn.004f8fb0
add esp, 8
test eax, eax
jl 0x509832
mov eax, dword [esp + 0xf8]
mov ecx, dword [esp + 0x100]
cmp eax, ecx
mov dword [esp + 0x20], eax
jge 0x509832
mov ebx, dword [esp + 0xf0]
mov esi, dword [esp + 0xf4]
sub ebx, eax
mov eax, dword [esp + 0xfc]
dec ebx
cmp esi, eax
jge 0x50981d
push ebx
push esi
lea ecx, [esp + 0x2e0]
call fcn.0050ac60
mov eax, dword [esp + 0xfc]
inc esi
cmp esi, eax
jl 0x5097fc
mov esi, dword [esp + 0xf4]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x100]
inc ecx
dec ebx
cmp ecx, edx
mov dword [esp + 0x20], ecx
jl 0x5097f8
mov esi, dword [esp + 0x14]
add edi, 0xc
inc esi
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], esi
mov ecx, dword [ebp + 0x94]
mov edx, dword [ebp + 0x90]
mov eax, 0x2aaaaaab
sub ecx, edx
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp esi, edx
jb 0x5092b3
mov edi, dword [esp + 0x350]
lea ecx, [esp + 0x2d8]
mov byte [esp + 0x340], 0x8a
call fcn.0050ae30
lea ecx, [esp + 0x2b4]
mov byte [esp + 0x340], 0x88
call fcn.0050ae30
lea ecx, [esp + 0x1d0]
mov byte [esp + 0x340], 0x86
call fcn.0050ae30
test edi, edi
je 0x5098b5
mov ecx, dword [edi]
push edi
call dword [ecx + 0x18]
xor esi, esi
mov bl, 0x9c
push esi
lea ecx, [esp + 0xc8]
call fcn.0050ae60
mov edx, dword [eax + 8]
mov eax, dword [esp + 0xdc]
shr edx, 0x18
cmp edx, eax
jb 0x509a5d
lea ecx, [esp + 0x1b]
call fcn.0050b140
push eax
lea ecx, [esp + 0x94]
mov byte [esp + 0x344], 0x9a
call fcn.0050e020
lea ecx, [esp + 0x1b]
mov byte [esp + 0x340], bl
call fcn.005124b0
push 0
lea ecx, [esp + 0x24]
call fcn.00492a10
lea eax, [esp + 0x20]
lea ecx, [esp + 0x90]
push eax
mov byte [esp + 0x344], 0x9d
call fcn.0050b0f0
lea ecx, [esp + 0x20]
mov byte [esp + 0x340], bl
call fcn.00408f50
mov ecx, dword [esp + 0xdc]
push ecx
push ecx
mov ecx, esp
mov dword [esp + 0xa8], esp
push 0
call fcn.0051a030
push esi
lea ecx, [esp + 0xd0]
call fcn.0050ae60
mov edx, dword [eax + 8]
lea ecx, [esp + 0x78]
push edx
push esi
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
push eax
call fcn.00517e90
add esp, 0x10
lea ecx, [esp + 0x90]
push eax
call fcn.0050b070
mov ecx, eax
call fcn.0050af00
push 0
lea ecx, [esp + 0x94]
call fcn.0050b070
mov ecx, eax
call fcn.0050af40
test al, al
jne 0x509dbb
push 0
lea ecx, [esp + 0x18]
call fcn.00492a10
lea eax, [esp + 0x14]
lea ecx, [esp + 0x90]
push eax
mov byte [esp + 0x344], 0x9e
call fcn.0050b0f0
lea ecx, [esp + 0x14]
mov byte [esp + 0x340], bl
call fcn.00408f50
push esi
lea ecx, [esp + 0x74]
call fcn.0050b060
push eax
lea ecx, [esp + 0x94]
call fcn.0050b070
mov ecx, eax
call fcn.0046ac80
mov ecx, dword [esp + 0xdc]
lea edx, [esp + 0x90]
push ecx
push edx
call fcn.00518c90
add esp, 8
lea ecx, [esp + 0x70]
push eax
push esi
call fcn.0050b060
mov ecx, eax
call fcn.0050af00
push 0
push esi
lea ecx, [esp + 0x78]
call fcn.0050b060
mov ecx, eax
call fcn.0050af40
test al, al
mov byte [esp + 0x340], 0x86
lea ecx, [esp + 0x90]
jne 0x509dca
call fcn.0050b080
inc esi
cmp esi, 7
jl 0x5098b9
test edi, edi
je 0x509a71
mov eax, dword [edi]
push edi
call dword [eax + 0x18]
lea ecx, [esp + 0x1b]
call fcn.0050b140
push eax
lea ecx, [esp + 0x108]
mov byte [esp + 0x344], 0x9f
call fcn.0050e020
lea ecx, [esp + 0x1b]
mov byte [esp + 0x340], 0xa1
call fcn.005124b0
xor esi, esi
mov bl, 0xa2
push 0
lea ecx, [esp + 0x24]
call fcn.00492a10
lea ecx, [esp + 0x20]
mov byte [esp + 0x340], bl
push ecx
lea ecx, [esp + 0x108]
call fcn.0050b0f0
lea ecx, [esp + 0x20]
mov byte [esp + 0x340], 0xa1
call fcn.00408f50
push esi
lea ecx, [esp + 0xc8]
call fcn.0050ae60
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x509b04
push esi
lea ecx, [esp + 0xc8]
call fcn.0050ae60
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x509b95
mov edx, dword [esp + 0xdc]
mov eax, dword [0x582c94]
mov ecx, dword [0x582c90]
push edx
push eax
push ecx
push esi
lea ecx, [esp + 0xd4]
call fcn.0050ae60
mov edx, dword [eax + 0x10]
lea ecx, [esp + 0xd0]
neg edx
push edx
push esi
call fcn.0050ae60
mov eax, dword [eax + 0xc]
lea ecx, [esp + 0x6c]
push eax
call fcn.0043edd0
push eax
push esi
lea ecx, [esp + 0x84]
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
push eax
call fcn.00518370
add esp, 0x14
lea ecx, [esp + 0x104]
push eax
call fcn.0050b070
mov ecx, eax
call fcn.0050af00
push 0
lea ecx, [esp + 0x108]
call fcn.0050b070
mov ecx, eax
call fcn.0050af40
test al, al
jne 0x509f22
inc esi
cmp esi, 7
jl 0x509aa4
test edi, edi
je 0x509ba9
mov ecx, dword [edi]
push edi
call dword [ecx + 0x18]
lea ecx, [esp + 0x2b]
call fcn.0050b140
push eax
lea ecx, [esp + 0x120]
mov byte [esp + 0x344], 0xa3
call fcn.0050e020
lea ecx, [esp + 0x2b]
mov byte [esp + 0x340], 0xa5
call fcn.005124b0
xor esi, esi
mov bl, 0xa6
push 0
lea ecx, [esp + 0x24]
call fcn.00492a10
lea edx, [esp + 0x20]
lea ecx, [esp + 0x11c]
push edx
mov byte [esp + 0x344], bl
call fcn.0050b0f0
lea ecx, [esp + 0x20]
mov byte [esp + 0x340], 0xa5
call fcn.00408f50
push esi
lea ecx, [esp + 0xc8]
call fcn.0050ae60
mov ecx, dword [eax + 0x14]
test ecx, ecx
jne 0x509c3c
push esi
lea ecx, [esp + 0xc8]
call fcn.0050ae60
mov ecx, dword [eax + 0x18]
test ecx, ecx
je 0x509cd1
mov eax, dword [esp + 0xdc]
lea ecx, [esp + 0xc4]
push eax
push esi
call fcn.0050ae60
mov ecx, dword [eax + 0x1c]
push ecx
push esi
lea ecx, [esp + 0xd0]
call fcn.0050ae60
mov edx, dword [eax + 0x18]
lea ecx, [esp + 0xcc]
neg edx
push edx
push esi
call fcn.0050ae60
mov eax, dword [eax + 0x14]
lea ecx, [esp + 0x68]
push eax
call fcn.0043edd0
push eax
push esi
lea ecx, [esp + 0x80]
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
push eax
call fcn.00518580
add esp, 0x10
lea ecx, [esp + 0x11c]
push eax
call fcn.0050b070
mov ecx, eax
call fcn.0050af00
push 0
lea ecx, [esp + 0x120]
call fcn.0050b070
mov ecx, eax
call fcn.0050af40
test al, al
jne 0x509f0e
inc esi
cmp esi, 7
jl 0x509bdc
test edi, edi
je 0x509ce5
mov ecx, dword [edi]
push edi
call dword [ecx + 0x18]
mov al, byte [esp + 0xd9]
test al, al
je 0x50a10a
mov edx, dword [esp + 0xd4]
push 1
add ebp, 0x5c
push edx
push ebp
call fcn.00516360
add esp, 0xc
lea ecx, [esp + 0x34]
push eax
call fcn.00492a10
lea ecx, [esp + 0x34]
mov byte [esp + 0x340], 0xa7
call fcn.0050b150
test eax, eax
je 0x50a0f9
push 0
lea ecx, [esp + 0x40]
call fcn.00492a10
lea ecx, [esp + 0x34]
mov byte [esp + 0x340], 0xa8
call fcn.0050b150
push 6
lea ecx, [esp + 0x74]
mov esi, eax
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
mov edx, dword [esi]
push esi
mov ebx, eax
call dword [edx + 0x14]
cmp eax, ebx
jne 0x509e6b
lea ecx, [esp + 0x34]
call fcn.0050b150
push 6
lea ecx, [esp + 0x74]
mov esi, eax
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
mov ebx, eax
mov eax, dword [esi]
push esi
call dword [eax + 0x18]
mov ecx, dword [ebx]
push ebx
mov esi, eax
call dword [ecx + 0x18]
cmp esi, eax
jne 0x509e6b
lea edx, [esp + 0x34]
lea ecx, [esp + 0x3c]
push edx
call fcn.0046ac80
jmp 0x509fd9
mov byte [esp + 0x340], 0x86
lea ecx, [esp + 0x90]
call fcn.0050b080
lea ecx, [esp + 0x138]
mov byte [esp + 0x340], 0x1e
call fcn.0050ad80
lea ecx, [esp + 0x70]
mov byte [esp + 0x340], 0x14
call fcn.0050b080
lea ecx, [esp + 0xb4]
mov byte [esp + 0x340], 0x10
call fcn.00418e50
lea ecx, [esp + 0xc0]
mov byte [esp + 0x340], 8
call fcn.0050ac80
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x340], 2
call fcn.004c6ee0
lea ecx, [esp + 0x54]
mov byte [esp + 0x340], 1
call fcn.00408f50
lea ecx, [esp + 0x48]
mov byte [esp + 0x340], 0
call fcn.00408f50
lea ecx, [esp + 0x30]
mov dword [esp + 0x340], 0xffffffff
call fcn.00408f50
jmp 0x50aa70
push 6
lea ecx, [esp + 0x74]
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
push 6
lea ecx, [esp + 0x74]
mov esi, eax
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
lea ecx, [esp + 0x30]
mov ebp, eax
call fcn.0050b150
mov ebx, eax
push 6
lea ecx, [esp + 0xc8]
mov edi, dword [ebx]
call fcn.0050ae60
mov eax, dword [eax + 0x34]
mov ecx, dword [esi]
push eax
push esi
call dword [ecx + 0x18]
mov edx, dword [ebp]
push eax
push ebp
call dword [edx + 0x14]
push eax
lea ecx, [esp + 0x40]
call fcn.0050b150
push eax
push ebx
call dword [edi + 0x38]
push eax
lea ecx, [esp + 0x40]
call fcn.0050af00
push 0
lea ecx, [esp + 0x40]
call fcn.0050af40
test al, al
je 0x509fd2
lea ecx, [esp + 0x3c]
mov byte [esp + 0x340], 0xa7
call fcn.00408f50
lea ecx, [esp + 0x34]
mov byte [esp + 0x340], 0xa5
call fcn.00408f50
lea ecx, [esp + 0x11c]
mov byte [esp + 0x340], 0xa1
call fcn.0050b080
lea ecx, [esp + 0x104]
mov byte [esp + 0x340], 0x86
call fcn.0050b080
lea ecx, [esp + 0x138]
mov byte [esp + 0x340], 0x1e
call fcn.0050ad80
lea ecx, [esp + 0x70]
mov byte [esp + 0x340], 0x14
call fcn.0050b080
lea ecx, [esp + 0xb4]
mov byte [esp + 0x340], 0x10
call fcn.00418e50
lea ecx, [esp + 0xc0]
mov byte [esp + 0x340], 8
call fcn.0050ac80
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x340], 2
call fcn.004c6ee0
lea ecx, [esp + 0x54]
mov byte [esp + 0x340], 1
call fcn.00408f50
lea ecx, [esp + 0x48]
mov byte [esp + 0x340], 0
call fcn.00408f50
lea ecx, [esp + 0x30]
mov dword [esp + 0x340], 0xffffffff
call fcn.00408f50
jmp 0x50aa70
mov edi, dword [esp + 0x350]
mov eax, dword [esp + 0xdc]
lea ecx, [esp + 0x3c]
push eax
call fcn.0050b150
push eax
push 6
lea ecx, [esp + 0x7c]
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
push eax
call fcn.005178d0
add esp, 0xc
mov byte [esp + 0x340], 0xa7
test al, al
lea ecx, [esp + 0x3c]
jne 0x50a0f4
call fcn.00408f50
lea ecx, [esp + 0x34]
mov byte [esp + 0x340], 0xa5
call fcn.00408f50
lea ecx, [esp + 0x11c]
mov byte [esp + 0x340], 0xa1
call fcn.0050b080
lea ecx, [esp + 0x104]
mov byte [esp + 0x340], 0x86
call fcn.0050b080
lea ecx, [esp + 0x138]
mov byte [esp + 0x340], 0x1e
call fcn.0050ad80
lea ecx, [esp + 0x70]
mov byte [esp + 0x340], 0x14
call fcn.0050b080
lea ecx, [esp + 0xb4]
mov byte [esp + 0x340], 0x10
call fcn.00418e50
lea ecx, [esp + 0xc0]
mov byte [esp + 0x340], 8
call fcn.0050ac80
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x340], 2
call fcn.004c6ee0
lea ecx, [esp + 0x54]
mov byte [esp + 0x340], 1
call fcn.00408f50
lea ecx, [esp + 0x48]
mov byte [esp + 0x340], 0
call fcn.00408f50
lea ecx, [esp + 0x30]
mov dword [esp + 0x340], 0xffffffff
call fcn.00408f50
jmp 0x50aa70
call fcn.00408f50
lea ecx, [esp + 0x34]
mov byte [esp + 0x340], 0xa5
call fcn.00408f50
mov esi, dword [esp + 0x34c]
mov ecx, esi
call fcn.0050b150
mov ebx, eax
mov ecx, esi
mov dword [esp + 0x14], ebx
call fcn.0050b160
cmp ebx, eax
je 0x50a739
lea ecx, [esp + 0x3b]
call fcn.0050b140
push eax
lea ecx, [esp + 0x60]
mov byte [esp + 0x344], 0xa9
call fcn.0050e020
lea ecx, [esp + 0x3b]
mov byte [esp + 0x340], 0xab
call fcn.005124b0
xor esi, esi
push esi
lea ecx, [esp + 0x74]
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
mov ecx, dword [eax]
push eax
call dword [ecx + 0x40]
push eax
lea ecx, [esp + 0x24]
call fcn.00492a10
lea edx, [esp + 0x20]
lea ecx, [esp + 0x5c]
push edx
mov byte [esp + 0x344], 0xac
call fcn.0050b0f0
lea ecx, [esp + 0x20]
mov byte [esp + 0x340], 0xab
call fcn.00408f50
push esi
lea ecx, [esp + 0xc8]
call fcn.0050ae60
mov ecx, eax
add ecx, 0x24
call fcn.004f4280
test al, al
jne 0x50a463
push esi
lea ecx, [esp + 0xc8]
call fcn.0050ae60
add eax, 0x24
lea ecx, [esp + 0x1f4]
push eax
lea eax, [esp + 0xb8]
push eax
push ecx
call fcn.00405210
push 0x57e790
lea edx, [esp + 0x8c]
push eax
push edx
mov byte [esp + 0x358], 0xad
call fcn.00406250
add esp, 0x18
mov ebp, eax
lea ecx, [esp + 0x48]
mov byte [esp + 0x340], 0xae
call fcn.0050b150
mov edi, eax
push 1
mov ecx, ebp
mov edx, dword [edi]
mov dword [esp + 0xa4], edx
call fcn.0050b150
push eax
mov eax, dword [esp + 0xa8]
push edi
call dword [eax + 0x1c]
push eax
lea ecx, [esp + 0x28]
call fcn.00492a10
lea ecx, [esp + 0x7c]
mov byte [esp + 0x340], 0xb1
call fcn.00418e50
lea ecx, [esp + 0x1f4]
mov byte [esp + 0x340], 0xb0
call fcn.00418e50
lea ecx, [esp + 0x24]
call fcn.0050b150
test eax, eax
je 0x50a452
lea ecx, [esp + 0x30]
call fcn.0050b150
mov edi, eax
lea ecx, [esp + 0x24]
mov ebp, dword [edi]
call fcn.0050b150
push eax
push edi
call dword [ebp + 0x14]
push eax
lea ecx, [esp + 0x14]
call fcn.00492a10
lea ecx, [esp + 0x1c]
mov byte [esp + 0x340], 0xb2
call fcn.0050b540
push esi
lea ecx, [esp + 0xc8]
mov byte [esp + 0x344], 0xb3
call fcn.0050ae60
mov cl, byte [eax + 0x30]
test cl, cl
je 0x50a3ef
push esi
lea ecx, [esp + 0x74]
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
cmp eax, dword [ebx + 0x10]
jne 0x50a311
push esi
lea ecx, [esp + 0x74]
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
mov edx, dword [eax]
push eax
call dword [edx + 0x18]
cmp eax, dword [ebx + 0x14]
jne 0x50a311
lea eax, [esp + 0x10]
push eax
jmp 0x50a3f4
lea ecx, [esp + 0x10]
call fcn.0050b150
push esi
lea ecx, [esp + 0x74]
mov edi, eax
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
lea ecx, [esp + 0x10]
mov ebp, eax
call fcn.0050b150
push esi
lea ecx, [esp + 0x74]
mov dword [esp + 0xa4], eax
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
lea ecx, [esp + 0x30]
mov dword [esp + 0xe4], eax
call fcn.0050b150
mov dword [esp + 0x68], eax
mov ebx, dword [eax]
push esi
lea ecx, [esp + 0xc8]
call fcn.0050ae60
mov ecx, dword [eax + 0x34]
mov edx, dword [ebp]
push ecx
push ebp
call dword [edx + 0x18]
mov ebp, eax
mov eax, dword [edi]
push edi
call dword [eax + 0x18]
imul eax, ebp
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x18]
cdq
idiv dword [ebx + 0x14]
push eax
mov eax, dword [esp + 0xa8]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x14]
mov edi, eax
mov eax, dword [esp + 0xec]
push eax
mov edx, dword [eax]
call dword [edx + 0x14]
imul eax, edi
cdq
idiv dword [ebx + 0x10]
lea ecx, [esp + 0x18]
push eax
call fcn.0050b150
mov ecx, dword [esp + 0x38]
push eax
mov eax, dword [esp + 0x78]
push eax
call dword [ecx + 0x38]
push eax
lea ecx, [esp + 0x20]
call fcn.0050af00
push 0
lea ecx, [esp + 0x20]
call fcn.0050af40
test al, al
jne 0x50a809
jmp 0x50a3fd
lea edx, [esp + 0x10]
push edx
lea ecx, [esp + 0x20]
call fcn.0046ac80
mov eax, dword [esp + 0xdc]
lea ecx, [esp + 0x1c]
push eax
call fcn.0050b150
push eax
lea ecx, [esp + 0x64]
call fcn.0050b070
mov ecx, eax
call fcn.0050b150
push eax
call fcn.005178d0
add esp, 0xc
mov byte [esp + 0x340], 0xb2
test al, al
lea ecx, [esp + 0x1c]
je 0x50a815
call fcn.00408f50
lea ecx, [esp + 0x10]
mov byte [esp + 0x340], 0xb0
call fcn.00408f50
lea ecx, [esp + 0x24]
mov byte [esp + 0x340], 0xab
call fcn.00408f50
inc esi
cmp esi, 7
jl 0x50a15b
push 0
lea ecx, [esp + 0x54]
call fcn.00492a10
mov byte [esp + 0x340], 0xb4
mov esi, 6
cmp esi, 6
jne 0x50a4a0
push esi
lea ecx, [esp + 0x60]
call fcn.0050b060
push eax
lea ecx, [esp + 0x54]
call fcn.0046ac80
jmp 0x50a4d4
mov ecx, dword [esp + 0xdc]
push ecx
push esi
lea ecx, [esp + 0x64]
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
push eax
lea ecx, [esp + 0x58]
call fcn.0050b150
push eax
call fcn.00517cf0
add esp, 0xc
test al, al
je 0x50a933
push 0
push esi
lea ecx, [esp + 0x124]
call fcn.0050b060
mov ecx, eax
call fcn.0050af50
test al, al
je 0x50a525
mov edx, dword [esp + 0xdc]
lea ecx, [esp + 0x11c]
push edx
push esi
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
push eax
lea ecx, [esp + 0x58]
call fcn.0050b150
push eax
call fcn.005178d0
add esp, 0xc
test al, al
je 0x50a933
push 0
push esi
lea ecx, [esp + 0x10c]
call fcn.0050b060
mov ecx, eax
call fcn.0050af50
test al, al
je 0x50a576
mov eax, dword [esp + 0xdc]
lea ecx, [esp + 0x104]
push eax
push esi
call fcn.0050b060
mov ecx, eax
call fcn.0050b150
push eax
lea ecx, [esp + 0x58]
call fcn.0050b150
push eax
call fcn.005178d0
add esp, 0xc
test al, al
je 0x50a933
dec esi
jns 0x50a485
push 0
lea ecx, [esp + 0x44]
call fcn.00492a10
lea ecx, [esp + 0x50]
mov byte [esp + 0x340], 0xb5
call fcn.0050b150
mov ecx, dword [eax]
push eax
call dword [ecx + 0x14]
cmp eax, dword [ebx + 0x10]
jne 0x50a5c8
lea ecx, [esp + 0x50]
call fcn.0050b150
mov edx, dword [eax]
push eax
call dword [edx + 0x18]
cmp eax, dword [ebx + 0x14]
jne 0x50a5c8
lea eax, [esp + 0x50]
lea ecx, [esp + 0x40]
push eax
call fcn.0046ac80
jmp 0x50a61a
lea ecx, [esp + 0x30]
call fcn.0050b150
mov esi, eax
push 6
lea ecx, [esp + 0xc8]
mov edi, dword [esi]
call fcn.0050ae60
mov ecx, dword [eax + 0x34]
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x10]
push ecx
push edx
push eax
lea ecx, [esp + 0x5c]
call fcn.0050b150
push eax
push esi
call dword [edi + 0x38]
push eax
lea ecx, [esp + 0x44]
call fcn.0050af00
push 0
lea ecx, [esp + 0x44]
call fcn.0050af40
test al, al
jne 0x50a922
push 0
lea ecx, [esp + 0x50]
call fcn.00492a10
mov byte [esp + 0x340], 0xb6
mov al, byte [ebx + 0x19]
test al, al
je 0x50a67a
lea ecx, [esp + 0x30]
call fcn.0050b150
mov ecx, dword [ebx + 0x24]
mov edx, dword [ebx + 0x20]
mov esi, eax
mov eax, dword [ebx + 0x1c]
push ecx
push edx
mov edi, dword [esi]
push eax
lea ecx, [esp + 0x4c]
call fcn.0050b150
push eax
push esi
call dword [edi + 0x40]
push eax
lea ecx, [esp + 0x50]
call fcn.0050af00
push 0
lea ecx, [esp + 0x50]
call fcn.0050af40
test al, al
jne 0x50a911
jmp 0x50a688
lea ecx, [esp + 0x40]
push ecx
lea ecx, [esp + 0x50]
call fcn.0046ac80
mov al, byte [ebx + 0x18]
test al, al
je 0x50a6b5
push 6
push 9
lea edx, [ebx + 4]
push 1
push edx
lea ecx, [esp + 0x5c]
call fcn.0050b150
push eax
call fcn.00516960
add esp, 0x14
test al, al
je 0x50a911
jmp 0x50a6d3
lea eax, [ebx + 4]
lea ecx, [esp + 0x4c]
push eax
call fcn.0050b150
push eax
call fcn.005165f0
add esp, 8
test al, al
je 0x50a911
lea ecx, [esp + 0x4c]
mov byte [esp + 0x340], 0xb5
call fcn.00408f50
lea ecx, [esp + 0x40]
mov byte [esp + 0x340], 0xb4
call fcn.00408f50
lea ecx, [esp + 0x50]
mov byte [esp + 0x340], 0xab
call fcn.00408f50
lea ecx, [esp + 0x5c]
mov byte [esp + 0x340], 0xa5
call fcn.0050b080
mov ecx, dword [esp + 0x34c]
add ebx, 0x28
mov dword [esp + 0x14], ebx
call fcn.0050b160
cmp ebx, eax
jne 0x50a12d
mov edi, dword [esp + 0x350]
test edi, edi
je 0x50a743
mov ecx, dword [edi]
push edi
call dword [ecx + 0x18]
lea ecx, [esp + 0x11c]
mov byte [esp + 0x340], 0xa1
call fcn.0050b080
lea ecx, [esp + 0x104]
mov byte [esp + 0x340], 0x86
call fcn.0050b080
lea ecx, [esp + 0x138]
mov byte [esp + 0x340], 0x1e
call fcn.0050ad80
lea ecx, [esp + 0x70]
mov byte [esp + 0x340], 0x14
call fcn.0050b080
lea ecx, [esp + 0xb4]
mov byte [esp + 0x340], 0x10
call fcn.00418e50
lea ecx, [esp + 0xc0]
mov byte [esp + 0x340], 8
call fcn.0050ac80
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x340], 2
call fcn.004c6ee0
lea ecx, [esp + 0x54]
mov byte [esp + 0x340], 1
call fcn.00408f50
lea ecx, [esp + 0x48]
mov byte [esp + 0x340], 0
call fcn.00408f50
lea ecx, [esp + 0x30]
mov dword [esp + 0x340], 0xffffffff
call fcn.00408f50
mov al, 1
jmp 0x50aa72
mov byte [esp + 0x340], 0xb2
lea ecx, [esp + 0x1c]
call fcn.00408f50
lea ecx, [esp + 0x10]
mov byte [esp + 0x340], 0xb0
call fcn.00408f50
lea ecx, [esp + 0x24]
mov byte [esp + 0x340], 0xab
call fcn.00408f50
lea ecx, [esp + 0x5c]
mov byte [esp + 0x340], 0xa5
call fcn.0050b080
lea ecx, [esp + 0x11c]
mov byte [esp + 0x340], 0xa1
call fcn.0050b080
lea ecx, [esp + 0x104]
mov byte [esp + 0x340], 0x86
call fcn.0050b080
lea ecx, [esp + 0x138]
mov byte [esp + 0x340], 0x1e
call fcn.0050ad80
lea ecx, [esp + 0x70]
mov byte [esp + 0x340], 0x14
call fcn.0050b080
lea ecx, [esp + 0xb4]
mov byte [esp + 0x340], 0x10
call fcn.00418e50
lea ecx, [esp + 0xc0]
mov byte [esp + 0x340], 8
call fcn.0050ac80
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x340], 2
call fcn.004c6ee0
lea ecx, [esp + 0x54]
mov byte [esp + 0x340], 1
call fcn.00408f50
lea ecx, [esp + 0x48]
mov byte [esp + 0x340], 0
call fcn.00408f50
lea ecx, [esp + 0x30]
mov dword [esp + 0x340], 0xffffffff
call fcn.00408f50
jmp 0x50aa70
lea ecx, [esp + 0x4c]
mov byte [esp + 0x340], 0xb5
call fcn.00408f50
lea ecx, [esp + 0x40]
mov byte [esp + 0x340], 0xb4
call fcn.00408f50
lea ecx, [esp + 0x50]
mov byte [esp + 0x340], 0xab
call fcn.00408f50
lea ecx, [esp + 0x5c]
mov byte [esp + 0x340], 0xa5
call fcn.0050b080
lea ecx, [esp + 0x11c]
mov byte [esp + 0x340], 0xa1
call fcn.0050b080
lea ecx, [esp + 0x104]
mov byte [esp + 0x340], 0x86
call fcn.0050b080
lea ecx, [esp + 0x138]
mov byte [esp + 0x340], 0x1e
call fcn.0050ad80
lea ecx, [esp + 0x70]
mov byte [esp + 0x340], 0x14
call fcn.0050b080
lea ecx, [esp + 0xb4]
mov byte [esp + 0x340], 0x10
call fcn.00418e50
lea ecx, [esp + 0xc0]
mov byte [esp + 0x340], 8
call fcn.0050ac80
lea ecx, [esp + 0x1a0]
mov byte [esp + 0x340], 2
call fcn.004c6ee0
lea ecx, [esp + 0x54]
mov byte [esp + 0x340], 1
call fcn.00408f50
lea ecx, [esp + 0x48]
mov byte [esp + 0x340], 0
call fcn.00408f50
lea ecx, [esp + 0x30]
mov dword [esp + 0x340], 0xffffffff
call fcn.00408f50
jmp 0x50aa70
cmp ecx, esi
mov byte [esp + 0x340], 1
je 0x50aa37
mov edx, dword [ecx]
push 0x7fffffff
push 1
push ecx
call dword [edx + 4]
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x48]
cmp edx, esi
mov byte [esp + 0x340], 0
je 0x50aa54
mov eax, dword [edx]
push 0x7fffffff
push 1
push edx
call dword [eax + 4]
mov eax, dword [esp + 0x30]
cmp eax, esi
mov dword [esp + 0x340], 0xffffffff
je 0x50aa70
mov ecx, dword [eax]
push 0x7fffffff
push 1
push eax
call dword [ecx + 4]
xor al, al
mov ecx, dword [esp + 0x338]
pop edi
pop esi
pop ebp
mov dword fs:[0], ecx
pop ebx
add esp, 0x334
ret