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

Disassembly:
push 0xffffffffffffffff
push 0x7cbc1b
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x130
push ebx
push ebp
push esi
mov ebx, ecx
push edi
mov dword [esp + 0x4c], ebx
call fcn.005cdba0
mov eax, dword [esp + 0x150]
test eax, eax
jne 0x5cecb6
mov eax, dword [ebx + 0x2c0]
test eax, eax
je 0x5cfcb8
mov ecx, dword [ebx + 0x2c4]
sub ecx, eax
test ecx, 0xffffffc0
je 0x5cfcb8
mov eax, dword [ebx + 0x2f0]
test eax, eax
jne 0x5cfcb8
mov eax, dword [ebx + 0x2c0]
test eax, eax
jne 0x5cddb7
xor ecx, ecx
jmp 0x5cddc2
mov ecx, dword [ebx + 0x2c4]
sub ecx, eax
sar ecx, 6
mov eax, 0xcccccccd
mul ecx
mov ecx, dword [ebx + 0x2c0]
mov esi, edx
shr esi, 2
test ecx, ecx
jne 0x5cdddc
xor eax, eax
jmp 0x5cdde7
mov eax, dword [ebx + 0x2c4]
sub eax, ecx
sar eax, 6
xor edx, edx
mov ecx, 5
div ecx
test edx, edx
jbe 0x5cddf5
inc esi
mov ecx, dword [ebx + 0x2dc]
lea eax, [esi - 1]
cmp ecx, eax
jbe 0x5cde08
mov dword [ebx + 0x2dc], eax
mov eax, dword [ebx + 0x2dc]
lea edi, [eax + eax*4]
mov eax, dword [ebx + 0x2c0]
test eax, eax
mov dword [esp + 0x18], edi
je 0x5cfcb8
mov edx, dword [ebx + 0x2c4]
sub edx, eax
sar edx, 6
cmp edi, edx
jae 0x5cfcb8
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x30]
mov byte [esp + 0x30], al
call fcn.00404e60
lea ecx, [esp + 0x2c]
mov dword [esp + 0x148], 0
push ecx
push 0x3072
call fcn.00709cc0
mov eax, dword [esp + 0x38]
add esp, 8
test eax, eax
jne 0x5cde73
mov eax, 0x7e5658
mov edx, dword [ebx + 0x2dc]
push esi
inc edx
push edx
push eax
lea eax, [esp + 0x11c]
push eax
call fcn.007a3155
mov eax, dword [ebx + 0x190]
add esp, 0x10
test eax, eax
je 0x5cdf28
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x40], cl
lea ecx, [esp + 0x40]
call fcn.00404e60
lea edi, [esp + 0x110]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x40]
push ebp
call fcn.00401b40
test al, al
je 0x5cdef6
mov edi, dword [esp + 0x40]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x110]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebp
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x40]
call fcn.00405070
mov ecx, dword [ebx + 0x190]
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x14c], 1
mov eax, dword [ecx]
call dword [eax + 0x9c]
push 1
lea ecx, [esp + 0x40]
mov byte [esp + 0x14c], 0
call fcn.00404e60
mov edi, dword [esp + 0x18]
mov esi, dword [ebx + 0x2c0]
mov eax, dword [ebx + 0x2c4]
test edi, edi
mov dword [esp + 0x14], esi
mov dword [esp + 0xdc], eax
jle 0x5cdf4c
shl edi, 6
add esi, edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x20], 0
cmp esi, dword [esp + 0xdc]
je 0x5cec5b
mov edi, 0x870c08
or ecx, 0xffffffff
xor eax, eax
add esi, 0x14
repne scasb al, byte es:[edi]
not ecx
dec ecx
push ecx
mov ecx, dword [esi + 8]
push 0x870c08
push ecx
push eax
mov ecx, esi
call fcn.0040b7c0
test eax, eax
jne 0x5ce046
mov eax, dword [esp + 0x20]
lea edx, [eax + eax*8]
mov eax, dword [ebx + edx*4 + 0xcc]
test eax, eax
lea ebp, [ebx + edx*4]
je 0x5ce140
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0xd0]
mov byte [esp + 0xd0], al
call fcn.00404e60
mov edi, 0x870c08
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], ecx
push ecx
lea ecx, [esp + 0xd4]
call fcn.00401b40
test al, al
je 0x5ce012
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0xd0]
mov ecx, eax
mov esi, 0x870c08
mov edx, ecx
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xd0]
call fcn.00405070
mov ecx, dword [ebp + 0xcc]
lea edx, [esp + 0xcc]
push edx
mov byte [esp + 0x14c], 2
mov eax, dword [ecx]
call dword [eax + 0x9c]
mov byte [esp + 0x148], 0
push 1
lea ecx, [esp + 0xd0]
jmp 0x5ce13b
lea eax, [esp + 0x2c]
push eax
push 0x3073
call fcn.00709cc0
mov esi, dword [esi + 4]
add esp, 8
test esi, esi
jne 0x5ce064
mov esi, 0x7e5658
mov eax, dword [esp + 0x30]
test eax, eax
jne 0x5ce071
mov eax, 0x7e5658
push esi
lea ecx, [esp + 0x114]
push eax
push ecx
call fcn.007a3155
mov eax, dword [esp + 0x2c]
add esp, 0xc
lea edx, [eax + eax*8]
mov eax, dword [ebx + edx*4 + 0xcc]
test eax, eax
lea ebp, [ebx + edx*4]
je 0x5ce140
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0xac]
mov byte [esp + 0xac], al
call fcn.00404e60
lea edi, [esp + 0x110]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], ecx
push ecx
lea ecx, [esp + 0xb0]
call fcn.00401b40
test al, al
je 0x5ce10c
mov eax, dword [esp + 0x18]
mov edi, dword [esp + 0xac]
mov ecx, eax
lea esi, [esp + 0x110]
mov edx, ecx
push eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xac]
call fcn.00405070
mov ecx, dword [ebp + 0xcc]
lea edx, [esp + 0xa8]
push edx
mov byte [esp + 0x14c], 3
mov eax, dword [ecx]
call dword [eax + 0x9c]
mov byte [esp + 0x148], 0
push 1
lea ecx, [esp + 0xac]
call fcn.00404e60
mov esi, dword [esp + 0x14]
cmp byte [esi], 1
jne 0x5ce167
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*8 + 0x36]
mov ebx, dword [ebx + eax*4]
test ebx, ebx
je 0x5ce25d
mov edx, dword [ebx]
push 0
mov ecx, ebx
jmp 0x5ce25a
lea eax, [esp + 0x2c]
push eax
push 0x3070
call fcn.00709cc0
mov eax, dword [esp + 0x38]
add esp, 8
test eax, eax
jne 0x5ce186
mov eax, 0x7e5658
movsx ecx, word [esi + 0x3c]
push ecx
lea edx, [esp + 0x114]
push eax
push edx
call fcn.007a3155
mov eax, dword [esp + 0x2c]
add esp, 0xc
lea eax, [eax + eax*8 + 0x36]
lea ebx, [ebx + eax*4]
cmp dword [ebx], 0
je 0x5ce25d
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0xbc], cl
lea ecx, [esp + 0xbc]
call fcn.00404e60
lea edi, [esp + 0x110]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov edi, ecx
lea ecx, [esp + 0xbc]
push edi
mov dword [esp + 0x20], edi
call fcn.00401b40
test al, al
je 0x5ce224
mov ecx, edi
mov edi, dword [esp + 0xbc]
mov edx, ecx
lea esi, [esp + 0x110]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
mov eax, edx
and ecx, 3
push eax
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0xbc]
call fcn.00405070
mov esi, dword [esp + 0x14]
mov ecx, dword [ebx]
lea eax, [esp + 0xb8]
push eax
mov byte [esp + 0x14c], 4
mov edx, dword [ecx]
call dword [edx + 0x9c]
push 1
lea ecx, [esp + 0xbc]
mov byte [esp + 0x14c], 0
call fcn.00404e60
mov ecx, dword [ebx]
push 1
mov edx, dword [ecx]
call dword [edx + 0x44]
mov edi, dword [esi + 0xc]
lea eax, [esp + 0x2c]
push eax
push 0x3074
call fcn.00709cc0
mov ecx, dword [esp + 0x38]
add esp, 8
test ecx, ecx
jne 0x5ce27f
mov ecx, 0x7e5658
mov eax, edi
mov ebx, 0x64
cdq
idiv ebx
mov eax, edi
mov ebx, 0x2710
push edx
cdq
idiv ebx
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, edi
push edx
mov edi, 0xf4240
cdq
idiv edi
mov eax, 0x68db8bad
imul edx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
push ecx
lea ecx, [esp + 0x120]
push ecx
call fcn.007a3155
mov eax, dword [ebp + 0xd0]
add esp, 0x14
test eax, eax
je 0x5ce36e
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x7c]
mov byte [esp + 0x7c], dl
call fcn.00404e60
lea edi, [esp + 0x110]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x7c]
push ebx
call fcn.00401b40
test al, al
je 0x5ce340
mov edi, dword [esp + 0x7c]
mov ecx, ebx
mov eax, ecx
lea esi, [esp + 0x110]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x7c]
call fcn.00405070
mov esi, dword [esp + 0x14]
mov ecx, dword [ebp + 0xd0]
lea eax, [esp + 0x78]
push eax
mov byte [esp + 0x14c], 5
mov edx, dword [ecx]
call dword [edx + 0x9c]
push 1
lea ecx, [esp + 0x7c]
mov byte [esp + 0x14c], 0
call fcn.00404e60
mov eax, dword [esi + 0x10]
cmp eax, 1
jle 0x5ce42b
push eax
lea ecx, [esp + 0x114]
push 0x82b618
push ecx
call fcn.007a3155
mov eax, dword [ebp + 0xd4]
add esp, 0xc
test eax, eax
je 0x5ce4c2
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x6c]
mov byte [esp + 0x6c], dl
call fcn.00404e60
lea edi, [esp + 0x110]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x6c]
push ebx
call fcn.00401b40
test al, al
je 0x5ce3fd
mov edi, dword [esp + 0x6c]
mov ecx, ebx
mov eax, ecx
lea esi, [esp + 0x110]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x6c]
call fcn.00405070
mov esi, dword [esp + 0x14]
mov ecx, dword [ebp + 0xd4]
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x14c], 6
mov edx, dword [ecx]
call dword [edx + 0x9c]
mov byte [esp + 0x148], 0
push 1
lea ecx, [esp + 0x6c]
jmp 0x5ce4bd
mov eax, dword [ebp + 0xd4]
test eax, eax
je 0x5ce4c2
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x5c], cl
lea ecx, [esp + 0x5c]
call fcn.00404e60
mov edi, 0x870c08
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x5c]
push ebx
call fcn.00401b40
test al, al
je 0x5ce494
mov edi, dword [esp + 0x5c]
mov ecx, ebx
mov edx, ecx
mov esi, 0x870c08
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
push ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [esp + 0x5c]
call fcn.00405070
mov esi, dword [esp + 0x14]
mov ecx, dword [ebp + 0xd4]
lea edx, [esp + 0x58]
push edx
mov byte [esp + 0x14c], 7
mov eax, dword [ecx]
call dword [eax + 0x9c]
mov byte [esp + 0x148], 0
push 1
lea ecx, [esp + 0x5c]
call fcn.00404e60
mov ecx, dword [esi + 8]
xor eax, eax
cmp ecx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x24], eax
je 0x5ce86e
mov eax, 0x10624dd3
mov edi, dword [0x9ea098]
mul ecx
shr edx, 6
lea ecx, [esp + 0x50]
lea eax, [edx + edx*4]
lea edx, [esp + 0xc8]
push ecx
push edx
lea eax, [eax + eax*4]
lea ecx, [edi + 0x14]
lea eax, [eax + eax*4]
shl eax, 3
mov dword [esp + 0x58], eax
call fcn.00464b00
mov edi, dword [edi + 0x18]
mov eax, dword [esp + 0xc8]
cmp eax, edi
jne 0x5ce60b
xor ebx, ebx
mov dword [esp + 0x28], ebx
xor eax, eax
test ebx, ebx
mov dword [esp + 0x24], eax
je 0x5ce86e
test eax, eax
je 0x5ce86e
mov dl, byte [esp + 0x13]
push 0
lea ecx, [esp + 0xf4]
mov byte [esp + 0xf4], dl
call fcn.00404e60
mov al, byte [esp + 0x13]
mov byte [esp + 0x148], 8
push 0
lea ecx, [esp + 0xe4]
mov byte [esp + 0xe4], al
call fcn.00404e60
mov eax, dword [0x9ea1d4]
mov byte [esp + 0x148], 9
mov ecx, dword [eax + 0x4e0]
mov edx, dword [eax + 0x4e8]
push ecx
lea eax, [esp + 0x140]
push edx
lea ecx, [esp + 0x140]
push eax
lea edx, [esp + 0xec]
push ecx
mov ecx, dword [esi + 8]
lea eax, [esp + 0x100]
push edx
push eax
push ecx
push ebx
call fcn.0070a3f0
push 0x48
call fcn.007a2d8d
mov ebx, eax
add esp, 0x24
mov dword [esp + 0x18], ebx
test ebx, ebx
mov byte [esp + 0x148], 0xa
je 0x5ce66c
mov dl, byte [esp + 0x13]
lea ecx, [ebx + 4]
xor esi, esi
push esi
mov byte [ecx], dl
call fcn.00404e60
mov al, byte [esp + 0x13]
lea ecx, [ebx + 0x20]
mov byte [esp + 0x148], 0xb
push esi
mov byte [ecx], al
call fcn.00404e60
mov byte [esp + 0x148], 0xa
jmp 0x5ce670
lea ebx, [eax + 0x10]
test ebx, ebx
mov dword [esp + 0x28], ebx
je 0x5ce524
mov cl, byte [ebx + 4]
cmp cl, 0x2b
jae 0x5ce524
mov eax, dword [esi + 8]
xor edx, edx
mov edi, 0x3e8
and ecx, 0xff
div edi
mov edi, dword [ecx*4 + 0x9ea09c]
lea eax, [esp + 0x1c]
lea ecx, [esp + 0x54]
push eax
push ecx
lea ecx, [edi + 0x14]
mov dword [esp + 0x24], edx
call fcn.00464b70
mov edi, dword [edi + 0x18]
mov eax, dword [esp + 0x54]
cmp eax, edi
je 0x5ce524
add eax, 0x10
jmp 0x5ce526
xor ebx, ebx
xor esi, esi
cmp ebx, esi
mov byte [esp + 0x148], 9
je 0x5cec6f
mov edi, 0x870c08
or ecx, 0xffffffff
xor eax, eax
mov word [ebx + 0x14], si
mov word [ebx + 0x16], si
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x1c], esi
lea edx, [ebx + 0x20]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov dword [esp + 0x1c], ecx
push ecx
mov ecx, edx
call fcn.00401b40
test al, al
je 0x5ce6db
mov ecx, dword [esp + 0x18]
mov edi, dword [ebx + 0x24]
lea eax, [ebx + 0x20]
mov edx, ecx
mov esi, 0x870c08
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, edx
push ecx
mov ecx, eax
call fcn.00405070
xor esi, esi
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x24]
mov dword [ebx + 0x30], esi
mov dword [ebx + 0x34], esi
mov dword [ebx + 0x38], edx
mov dword [ebx + 0x3c], edi
mov eax, dword [0x7e565c]
lea ecx, [esp + 0xe0]
push eax
push esi
push ecx
lea ecx, [ebx + 4]
call fcn.00404c60
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
push 0x100
mov eax, dword [edx + 0x10]
mov dword [ebx + 0x40], eax
movsx edx, word [ecx + 0x4e]
movsx eax, word [edi + 0x3e]
add edx, eax
mov dword [ebx + 0x44], edx
mov dword [ebp + 0xe4], ebx
call fcn.007a2d8d
add esp, 4
mov dword [esp + 0x50], eax
cmp eax, esi
mov byte [esp + 0x148], 0xd
je 0x5ce74d
mov ecx, eax
call fcn.00509c60
jmp 0x5ce74f
xor eax, eax
mov ecx, dword [ebp + 0xe4]
mov byte [esp + 0x148], 9
mov dword [ecx], eax
mov edx, dword [ebp + 0xe4]
mov ecx, dword [edx]
mov edx, dword [esp + 0x4c]
push edx
mov eax, dword [ecx]
call dword [eax + 0x70]
mov eax, dword [ebp + 0xe4]
lea ecx, [eax + 4]
push ecx
mov ecx, dword [eax]
call fcn.0040bee0
mov edx, dword [ebp + 0xe4]
push 0x3f340000
push 0x3f340000
push esi
mov ecx, dword [edx]
push esi
call fcn.0040c600
mov eax, dword [ebp + 0xe4]
push 0x110
mov eax, dword [eax]
mov dword [eax + 0x78], 0xb
mov ecx, dword [ebp + 0xe4]
mov ecx, dword [ecx]
mov edx, dword [ecx]
call dword [edx + 0x40]
mov eax, dword [ebp + 0xdc]
cmp eax, esi
je 0x5ce83b
add eax, 0x88
mov ecx, dword [eax]
mov dword [esp + 0x88], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x8c], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x90], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [ebp + 0xe4]
mov dword [esp + 0x94], edx
mov ecx, dword [eax]
lea eax, [esp + 0x88]
push eax
mov edx, dword [ecx]
call dword [edx + 0x30]
mov ecx, dword [ebp + 0xe4]
mov edx, dword [esp + 0x88]
mov eax, dword [ecx]
add eax, 0x98
mov dword [eax], edx
mov ecx, dword [esp + 0x8c]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x90]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x94]
mov dword [eax + 0xc], ecx
push 1
lea ecx, [esp + 0xe4]
mov byte [esp + 0x14c], 8
call fcn.00404e60
push 1
lea ecx, [esp + 0xf4]
mov byte [esp + 0x14c], 0
call fcn.00404e60
xor esi, esi
jmp 0x5ceaf1
push 0x48
call fcn.007a2d8d
mov ebx, eax
add esp, 4
mov dword [esp + 0x50], ebx
test ebx, ebx
mov byte [esp + 0x148], 0xe
je 0x5ce8bc
mov dl, byte [esp + 0x13]
lea ecx, [ebx + 4]
xor esi, esi
push esi
mov byte [ecx], dl
call fcn.00404e60
mov al, byte [esp + 0x13]
lea ecx, [ebx + 0x20]
mov byte [esp + 0x148], 0xf
push esi
mov byte [ecx], al
call fcn.00404e60
mov byte [esp + 0x148], 0xe
jmp 0x5ce8c0
xor ebx, ebx
xor esi, esi
cmp ebx, esi
mov byte [esp + 0x148], 0
je 0x5cec9b
mov edi, 0x870c08
or ecx, 0xffffffff
xor eax, eax
mov word [ebx + 0x14], si
mov word [ebx + 0x16], si
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x1c], esi
lea edx, [ebx + 0x20]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov dword [esp + 0x1c], ecx
push ecx
mov ecx, edx
call fcn.00401b40
test al, al
je 0x5ce92b
mov ecx, dword [esp + 0x18]
mov edi, dword [ebx + 0x24]
lea eax, [ebx + 0x20]
mov edx, ecx
mov esi, 0x870c08
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, edx
push ecx
mov ecx, eax
call fcn.00405070
xor esi, esi
mov edx, dword [esp + 0x14]
mov dword [ebx + 0x30], esi
mov dword [ebx + 0x34], esi
mov dword [ebx + 0x38], esi
mov dword [ebx + 0x3c], esi
mov eax, dword [edx + 0x34]
cmp eax, esi
lea edx, [ebx + 4]
jne 0x5ce987
mov edi, 0x82fd94
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], ecx
push ecx
mov ecx, edx
call fcn.00401b40
test al, al
je 0x5ce9d1
mov ecx, dword [esp + 0x18]
mov edi, dword [ebx + 8]
lea eax, [ebx + 4]
mov edx, ecx
mov esi, 0x82fd94
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, edx
jmp 0x5ce9c7
mov edi, 0x82fd78
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x1c], ecx
push ecx
mov ecx, edx
call fcn.00401b40
test al, al
je 0x5ce9d1
mov ecx, dword [esp + 0x18]
mov edi, dword [ebx + 8]
lea eax, [ebx + 4]
mov edx, ecx
mov esi, 0x82fd78
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, edx
push ecx
mov ecx, eax
call fcn.00405070
xor esi, esi
mov dword [ebx + 0x40], esi
mov dword [ebx + 0x44], esi
push 0x100
mov dword [ebp + 0xe4], ebx
call fcn.007a2d8d
add esp, 4
mov dword [esp + 0x50], eax
cmp eax, esi
mov byte [esp + 0x148], 0x11
je 0x5cea03
mov ecx, eax
call fcn.00509c60
jmp 0x5cea05
xor eax, eax
mov edx, dword [ebp + 0xe4]
mov byte [esp + 0x148], 0
mov dword [edx], eax
mov eax, dword [ebp + 0xe4]
mov ecx, dword [eax]
mov eax, dword [esp + 0x4c]
push eax
mov edx, dword [ecx]
call dword [edx + 0x70]
mov eax, dword [ebp + 0xe4]
lea ecx, [eax + 4]
push ecx
mov ecx, dword [eax]
call fcn.0040bee0
mov edx, dword [ebp + 0xe4]
push 0x3f340000
push 0x3f340000
push esi
mov ecx, dword [edx]
push esi
call fcn.0040c600
mov eax, dword [ebp + 0xe4]
push 0x110
mov eax, dword [eax]
mov dword [eax + 0x78], 0xb
mov ecx, dword [ebp + 0xe4]
mov ecx, dword [ecx]
mov edx, dword [ecx]
call dword [edx + 0x40]
mov eax, dword [ebp + 0xdc]
cmp eax, esi
je 0x5ceaf1
add eax, 0x88
mov ecx, dword [eax]
mov dword [esp + 0x98], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x9c], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0xa0], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [ebp + 0xe4]
mov dword [esp + 0xa4], edx
mov ecx, dword [eax]
lea eax, [esp + 0x98]
push eax
mov edx, dword [ecx]
call dword [edx + 0x30]
mov ecx, dword [ebp + 0xe4]
mov edx, dword [esp + 0x98]
mov eax, dword [ecx]
add eax, 0x98
mov dword [eax], edx
mov ecx, dword [esp + 0x9c]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0xa0]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0xa4]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp + 0xc8]
cmp ecx, esi
je 0x5cec36
mov edx, dword [esp + 0x14]
cmp byte [edx], 0
je 0x5ceb4f
mov edi, dword [esp + 0x28]
cmp edi, esi
je 0x5ceb4f
mov edx, dword [esp + 0x24]
xor eax, eax
mov al, byte [edx + 0x34]
cmp eax, 4
je 0x5ceb3e
cmp eax, 3
je 0x5ceb3e
cmp eax, 6
je 0x5ceb3e
cmp eax, 0xc
je 0x5ceb3e
mov eax, dword [ecx]
add edi, 8
push edi
call dword [eax + 0x9c]
jmp 0x5cec36
mov eax, dword [ecx]
add edx, 4
push edx
call dword [eax + 0x9c]
jmp 0x5cec36
mov edi, dword [esp + 0x14]
cmp dword [edi + 0x38], 2
jne 0x5cec2a
lea ecx, [esp + 0x2c]
push ecx
push 0x3071
call fcn.00709cc0
mov eax, dword [edi + 0x28]
add esp, 8
cmp eax, esi
mov ecx, 0x7e5658
je 0x5ceb7d
mov ecx, eax
mov eax, dword [esp + 0x30]
cmp eax, esi
jne 0x5ceb8a
mov eax, 0x7e5658
push ecx
lea edx, [esp + 0x114]
push eax
push edx
call fcn.007a3155
mov al, byte [esp + 0x1f]
add esp, 0xc
lea ecx, [esp + 0x3c]
mov byte [esp + 0x3c], al
push esi
call fcn.00404e60
lea edi, [esp + 0x110]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebx, ecx
lea ecx, [esp + 0x40]
push ebx
call fcn.00401b40
test al, al
je 0x5cebfa
mov edi, dword [esp + 0x40]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0x110]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], ebx
xor esi, esi
mov byte [ebx + eax], 0
mov ecx, dword [ebp + 0xc8]
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x14c], 0x12
mov edx, dword [ecx]
call dword [edx + 0x9c]
push 1
lea ecx, [esp + 0x40]
mov byte [esp + 0x14c], 0
call fcn.00404e60
jmp 0x5cec36
mov edx, dword [ecx]
add edi, 0x24
push edi
call dword [edx + 0x9c]
mov ebp, dword [ebp + 0xc4]
cmp ebp, esi
je 0x5cec4a
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax + 0x44]
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x4c]
add eax, 0x40
mov dword [esp + 0x14], eax
mov esi, eax
mov eax, dword [esp + 0x20]
inc eax
cmp eax, 5
mov dword [esp + 0x20], eax
jl 0x5cdf54
jmp 0x5cec9b
push 1
lea ecx, [esp + 0xe4]
mov byte [esp + 0x14c], 8
call fcn.00404e60
push 1
lea ecx, [esp + 0xf4]
mov byte [esp + 0x14c], 0
call fcn.00404e60
push 1
lea ecx, [esp + 0x30]
mov dword [esp + 0x14c], 0xffffffff
call fcn.00404e60
jmp 0x5cfcb8
cmp eax, 1
jne 0x5cfcb8
mov eax, dword [ebx + 0x2d0]
test eax, eax
je 0x5cfcb8
mov ecx, dword [ebx + 0x2d4]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
je 0x5cfcb8
cmp dword [ebx + 0x2f0], 1
jne 0x5cfcb8
mov eax, dword [ebx + 0x2d0]
test eax, eax
jne 0x5ced07
xor edx, edx
jmp 0x5ced20
mov ecx, dword [ebx + 0x2d4]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, 0xcccccccd
mul edx
mov eax, dword [ebx + 0x2d0]
mov edi, edx
shr edi, 2
test eax, eax
jne 0x5ced3a
xor edx, edx
jmp 0x5ced53
mov ecx, dword [ebx + 0x2d4]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add edx, ecx
mov eax, edx
xor edx, edx
mov ecx, 5
div ecx
test edx, edx
jbe 0x5ced63
inc edi
mov ecx, dword [ebx + 0x2dc]
lea eax, [edi - 1]
cmp ecx, eax
jbe 0x5ced76
mov dword [ebx + 0x2dc], eax
mov eax, dword [ebx + 0x2dc]
lea esi, [eax + eax*4]
mov eax, dword [ebx + 0x2d0]
test eax, eax
mov dword [esp + 0x54], esi
je 0x5cfcb8
mov ecx, dword [ebx + 0x2d4]
sub ecx, eax
mov eax, 0x78787879
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
cmp esi, edx
jae 0x5cfcb8
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0xe4], cl
lea ecx, [esp + 0xe4]
call fcn.00404e60
lea edx, [esp + 0xe0]
mov dword [esp + 0x148], 0x13
push edx
push 0x3072
call fcn.00709cc0
mov eax, dword [esp + 0xec]
add esp, 8
test eax, eax
jne 0x5cedfb
mov eax, 0x7e5658
mov ecx, dword [ebx + 0x2dc]
push edi
inc ecx
lea edx, [esp + 0x114]
push ecx
push eax
push edx
call fcn.007a3155
mov eax, dword [ebx + 0x268]
add esp, 0x10
test eax, eax
je 0x5ceeb2
mov al, byte [esp + 0x13]
push 0
lea ecx, [esp + 0x40]
mov byte [esp + 0x40], al
call fcn.00404e60
lea edi, [esp + 0x110]
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov ebp, ecx
lea ecx, [esp + 0x40]
push ebp
call fcn.00401b40
test al, al
je 0x5cee80
mov edi, dword [esp + 0x40]
mov ecx, ebp
mov edx, ecx
lea esi, [esp + 0x110]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x44], ebp
mov byte [eax + ebp], 0
mov ecx, dword [ebx + 0x268]
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x14c], 0x14
mov edx, dword [ecx]
call dword [edx + 0x9c]
push 1
lea ecx, [esp + 0x40]
mov byte [esp + 0x14c], 0x13
call fcn.00404e60
mov esi, dword [esp + 0x54]
mov edi, dword [ebx + 0x2d0]
mov ecx, dword [ebx + 0x2d4]
test esi, esi
mov dword [esp + 0x14], edi
mov dword [esp + 0x54], ecx
jle 0x5ceed8
mov edx, esi
shl edx, 4
add edx, esi
lea edi, [edi + edx*4]
mov dword [esp + 0x14], edi
mov ecx, dword [ebx + 0x24c]
test ecx, ecx
je 0x5ceee9
mov eax, dword [ecx]
push 2
call dword [eax + 0x3c]
xor esi, esi
mov dword [esp + 0x20], esi
cmp edi, dword [esp + 0x54]
je 0x5cfb90
mov cl, byte [esp + 0x13]
push 0
mov byte [esp + 0x30], cl
lea ecx, [esp + 0x30]
call fcn.00404e60
mov edi, dword [edi + 0xc]
lea edx, [esp + 0x2c]
push edx
push 0x3075
mov byte [esp + 0x150], 0x15
call fcn.00709cc0
mov ecx, dword [esp + 0x38]
add esp, 8
test ecx, ecx
jne 0x5cef36
mov ecx, 0x7e5658
mov eax, edi
mov ebp, 0x64
cdq
idiv ebp
mov eax, edi
mov ebp, 0x2710
push edx
cdq
idiv ebp
mov eax, 0x51eb851f
imul edx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add edx, eax
mov eax, edi
push edx
mov edi, 0xf4240
cdq
idiv edi
mov eax, 0x68db8bad
imul edx
sar edx, 0xc
mov eax, edx
shr eax, 0x1f
add edx, eax
push edx
push ecx
lea ecx, [esp + 0x100]
push ecx
call fcn.007a3155
lea edx, [esi + esi*8]
xor esi, esi
add esp, 0x14
mov eax, dword [ebx + edx*4 + 0x1a8]
lea ebp, [ebx + edx*4]
cmp eax, esi
je 0x5cf04a
mov al, byte [esp + 0x13]
lea edi, [esp + 0xf0]
mov byte [esp + 0xb8], al
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0xbc], esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0xc0], esi
push ecx
lea ecx, [esp + 0xf4]
push ecx
lea ecx, [esp + 0xc0]
mov dword [esp + 0xcc], esi
call fcn.00404eb0
mov ecx, dword [ebp + 0x1a8]
lea eax, [esp + 0xb8]
push eax
mov byte [esp + 0x14c], 0x16
mov edx, dword [ecx]
call dword [edx + 0x9c]
mov eax, dword [esp + 0xbc]
mov byte [esp + 0x148], 0x15
cmp eax, esi
je 0x5cf035
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cf02c
cmp al, 0xff
je 0x5cf02c
dec al
mov byte [ecx], al
jmp 0x5cf035
push ecx
call fcn.007a02e0
add esp, 4
mov dword [esp + 0xbc], esi
mov dword [esp + 0xc0], esi
mov dword [esp + 0xc4], esi
mov eax, dword [esp + 0x14]
cmp byte [eax], 0
je 0x5cf071
movsx ecx, word [eax + 0x14]
mov edi, 4
sub edi, ecx
mov ecx, dword [ebp + 0x19c]
cmp ecx, esi
je 0x5cf086
mov edx, dword [ecx]
push 1
call dword [edx + 0x44]
jmp 0x5cf086
mov ecx, dword [ebp + 0x19c]
movsx edi, word [eax + 0x14]
cmp ecx, esi
je 0x5cf086
mov eax, dword [ecx]
push 1
call dword [eax + 0x44]
lea ecx, [esp + 0x2c]
push ecx
push 0x3070
call fcn.00709cc0
mov eax, dword [esp + 0x38]
add esp, 8
cmp eax, esi
jne 0x5cf0a5
mov eax, 0x7e5658
push edi
lea edx, [esp + 0xf4]
push eax
push edx
call fcn.007a3155
mov eax, dword [ebp + 0x1ac]
add esp, 0xc
cmp eax, esi
je 0x5cf16e
mov al, byte [esp + 0x13]
lea edi, [esp + 0xf0]
mov byte [esp + 0xa8], al
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0xac], esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0xb0], esi
push ecx
lea ecx, [esp + 0xf4]
push ecx
lea ecx, [esp + 0xb0]
mov dword [esp + 0xbc], esi
call fcn.00404eb0
mov ecx, dword [ebp + 0x1ac]
lea eax, [esp + 0xa8]
push eax
mov byte [esp + 0x14c], 0x17
mov edx, dword [ecx]
call dword [edx + 0x9c]
mov eax, dword [esp + 0xac]
mov byte [esp + 0x148], 0x15
cmp eax, esi
je 0x5cf159
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cf150
cmp al, 0xff
je 0x5cf150
dec al
mov byte [ecx], al
jmp 0x5cf159
push ecx
call fcn.007a02e0
add esp, 4
mov dword [esp + 0xac], esi
mov dword [esp + 0xb0], esi
mov dword [esp + 0xb4], esi
mov ecx, dword [esp + 0x14]
mov edi, 0x870c08
xor eax, eax
lea ebx, [ecx + 0x18]
or ecx, 0xffffffff
repne scasb al, byte es:[edi]
mov edx, dword [ebx + 8]
not ecx
dec ecx
push ecx
push 0x870c08
push edx
push esi
mov ecx, ebx
call fcn.0040b7c0
cmp eax, esi
jne 0x5cf26b
cmp dword [ebp + 0x1a4], esi
je 0x5cf35f
mov al, byte [esp + 0x13]
mov edi, 0x870c08
mov byte [esp + 0x98], al
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x9c], esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0xa0], esi
push ecx
push 0x870c08
lea ecx, [esp + 0xa0]
mov dword [esp + 0xac], esi
call fcn.00404eb0
mov ecx, dword [ebp + 0x1a4]
lea eax, [esp + 0x98]
push eax
mov byte [esp + 0x14c], 0x18
mov edx, dword [ecx]
call dword [edx + 0x9c]
mov eax, dword [esp + 0x9c]
mov byte [esp + 0x148], 0x15
cmp eax, esi
je 0x5cf251
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cf248
cmp al, 0xff
je 0x5cf248
dec al
mov byte [ecx], al
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], esi
jmp 0x5cf35f
push ecx
call fcn.007a02e0
add esp, 4
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], esi
mov dword [esp + 0xa4], esi
jmp 0x5cf35f
lea ecx, [esp + 0x2c]
push ecx
push 0x3073
call fcn.00709cc0
mov ebx, dword [ebx + 4]
add esp, 8
cmp ebx, esi
jne 0x5cf289
mov ebx, 0x7e5658
mov eax, dword [esp + 0x30]
cmp eax, esi
jne 0x5cf296
mov eax, 0x7e5658
push ebx
lea edx, [esp + 0xf4]
push eax
push edx
call fcn.007a3155
mov eax, dword [ebp + 0x1a4]
add esp, 0xc
cmp eax, esi
je 0x5cf35f
mov al, byte [esp + 0x13]
lea edi, [esp + 0xf0]
mov byte [esp + 0x88], al
or ecx, 0xffffffff
xor eax, eax
mov dword [esp + 0x8c], esi
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x90], esi
push ecx
lea ecx, [esp + 0xf4]
push ecx
lea ecx, [esp + 0x90]
mov dword [esp + 0x9c], esi
call fcn.00404eb0
mov ecx, dword [ebp + 0x1a4]
lea eax, [esp + 0x88]
push eax
mov byte [esp + 0x14c], 0x19
mov edx, dword [ecx]
call dword [edx + 0x9c]
mov eax, dword [esp + 0x8c]
mov byte [esp + 0x148], 0x15
cmp eax, esi
je 0x5cf34a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cf341
cmp al, 0xff
je 0x5cf341
dec al
mov byte [ecx], al
jmp 0x5cf34a
push ecx
call fcn.007a02e0
add esp, 4
mov dword [esp + 0x8c], esi
mov dword [esp + 0x90], esi
mov dword [esp + 0x94], esi
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x24], esi
mov dword [esp + 0x28], esi
mov ecx, dword [ecx + 8]
cmp ecx, esi
je 0x5cf760
mov eax, 0x10624dd3
mov edi, dword [0x9ea098]
mul ecx
shr edx, 6
lea ecx, [esp + 0xc8]
lea edx, [edx + edx*4]
lea eax, [edx + edx*4]
lea edx, [eax + eax*4]
lea eax, [esp + 0x1c]
push eax
push ecx
shl edx, 3
lea ecx, [edi + 0x14]
mov dword [esp + 0x24], edx
call fcn.00464b00
mov edi, dword [edi + 0x18]
mov eax, dword [esp + 0xc8]
cmp eax, edi
jne 0x5cf4a7
xor ebx, ebx
mov dword [esp + 0x24], ebx
xor eax, eax
cmp ebx, esi
mov dword [esp + 0x28], eax
je 0x5cf760
cmp eax, esi
je 0x5cf760
mov dl, byte [esp + 0x13]
mov dword [esp + 0x7c], esi
mov byte [esp + 0x78], dl
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov al, byte [esp + 0x13]
mov byte [esp + 0x148], 0x1a
mov byte [esp + 0x58], al
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
mov eax, dword [0x9ea1d4]
mov byte [esp + 0x148], 0x1b
mov ecx, dword [eax + 0x4e0]
mov edx, dword [eax + 0x4e8]
push ecx
lea eax, [esp + 0x13c]
push edx
lea ecx, [esp + 0x144]
push eax
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x68]
push edx
lea eax, [esp + 0x8c]
mov edx, dword [ecx + 8]
push eax
push edx
push ebx
call fcn.0070a3f0
push 0x48
call fcn.007a2d8d
mov ebx, eax
add esp, 0x24
mov dword [esp + 0x18], ebx
cmp ebx, esi
mov byte [esp + 0x148], 0x1c
je 0x5cf512
mov al, byte [esp + 0x13]
lea ecx, [ebx + 4]
xor esi, esi
push esi
mov byte [ecx], al
call fcn.00404e60
mov dl, byte [esp + 0x13]
lea ecx, [ebx + 0x20]
mov byte [esp + 0x148], 0x1d
push esi
mov byte [ecx], dl
call fcn.00404e60
mov byte [esp + 0x148], 0x1c
jmp 0x5cf516
lea ebx, [eax + 0x10]
cmp ebx, esi
mov dword [esp + 0x24], ebx
je 0x5cf3c3
mov cl, byte [ebx + 4]
cmp cl, 0x2b
jae 0x5cf3c3
mov edx, dword [esp + 0x14]
mov edi, 0x3e8
and ecx, 0xff
mov eax, dword [edx + 8]
xor edx, edx
div edi
mov edi, dword [ecx*4 + 0x9ea09c]
lea eax, [esp + 0x50]
lea ecx, [esp + 0xdc]
push eax
push ecx
lea ecx, [edi + 0x14]
mov dword [esp + 0x58], edx
call fcn.00464b70
mov edi, dword [edi + 0x18]
mov eax, dword [esp + 0xdc]
cmp eax, edi
je 0x5cf3c3
add eax, 0x10
jmp 0x5cf3c5
xor ebx, ebx
xor esi, esi
cmp ebx, esi
mov byte [esp + 0x148], 0x1b
je 0x5cfbd5
mov edi, 0x870c08
or ecx, 0xffffffff
xor eax, eax
mov word [ebx + 0x14], si
mov word [ebx + 0x16], si
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x1c], esi
lea edx, [ebx + 0x20]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov dword [esp + 0x1c], ecx
push ecx
mov ecx, edx
call fcn.00401b40
test al, al
je 0x5cf581
mov edx, dword [esp + 0x18]
mov edi, dword [ebx + 0x24]
mov ecx, edx
mov esi, 0x870c08
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebx + 0x24]
mov dword [ebx + 0x28], edx
add eax, edx
xor esi, esi
mov byte [eax], 0
mov ecx, dword [esp + 0x24]
mov edi, dword [esp + 0x28]
mov dword [ebx + 0x30], esi
mov dword [ebx + 0x34], esi
mov dword [ebx + 0x38], ecx
mov dword [ebx + 0x3c], edi
mov edx, dword [0x7e565c]
lea eax, [esp + 0x58]
push edx
push esi
push eax
lea ecx, [ebx + 4]
call fcn.00404c60
mov ecx, dword [esp + 0x24]
mov dword [ebx + 0x40], 1
movsx eax, word [edi + 0x3e]
movsx edx, word [ecx + 0x4e]
add edx, eax
push 0x100
mov dword [ebx + 0x44], edx
mov dword [ebp + 0x1b8], ebx
call fcn.007a2d8d
add esp, 4
mov dword [esp + 0x1c], eax
cmp eax, esi
mov byte [esp + 0x148], 0x1f
je 0x5cf5ee
mov ecx, eax
call fcn.00509c60
jmp 0x5cf5f0
xor eax, eax
mov ecx, dword [ebp + 0x1b8]
mov edi, dword [esp + 0x4c]
mov byte [esp + 0x148], 0x1b
push edi
mov dword [ecx], eax
mov edx, dword [ebp + 0x1b8]
mov ecx, dword [edx]
mov eax, dword [ecx]
call dword [eax + 0x70]
mov eax, dword [ebp + 0x1b8]
lea ecx, [eax + 4]
push ecx
mov ecx, dword [eax]
call fcn.0040bee0
mov edx, dword [ebp + 0x1b8]
push 0x3f340000
push 0x3f340000
push esi
mov ecx, dword [edx]
push esi
call fcn.0040c600
mov eax, dword [ebp + 0x1b8]
push 0x4110
mov eax, dword [eax]
mov dword [eax + 0x78], 0xb
mov ecx, dword [ebp + 0x1b8]
mov ecx, dword [ecx]
mov edx, dword [ecx]
call dword [edx + 0x40]
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*8 + 0x6c]
mov eax, dword [edi + eax*4]
cmp eax, esi
je 0x5cf6e1
add eax, 0x88
mov ecx, dword [eax]
mov dword [esp + 0xcc], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0xd0], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0xd4], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [ebp + 0x1b8]
mov dword [esp + 0xd8], edx
mov ecx, dword [eax]
lea eax, [esp + 0xcc]
push eax
mov edx, dword [ecx]
call dword [edx + 0x30]
mov ecx, dword [ebp + 0x1b8]
mov edx, dword [esp + 0xcc]
mov eax, dword [ecx]
add eax, 0x98
mov dword [eax], edx
mov ecx, dword [esp + 0xd0]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0xd4]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0xd8]
mov dword [eax + 0xc], ecx
mov eax, dword [esp + 0x5c]
mov byte [esp + 0x148], 0x1a
cmp eax, esi
je 0x5cf70e
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cf705
cmp al, 0xff
je 0x5cf705
dec al
mov byte [ecx], al
jmp 0x5cf70e
push ecx
call fcn.007a02e0
add esp, 4
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
cmp eax, esi
mov byte [esp + 0x148], 0x15
je 0x5cf747
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cf73e
cmp al, 0xff
je 0x5cf73e
dec al
mov byte [ecx], al
jmp 0x5cf747
push ecx
call fcn.007a02e0
add esp, 4
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
xor esi, esi
jmp 0x5cf9bc
push 0x48
call fcn.007a2d8d
mov ebx, eax
add esp, 4
mov dword [esp + 0x1c], ebx
cmp ebx, esi
mov byte [esp + 0x148], 0x20
je 0x5cf7ae
mov dl, byte [esp + 0x13]
lea ecx, [ebx + 4]
xor esi, esi
push esi
mov byte [ecx], dl
call fcn.00404e60
mov al, byte [esp + 0x13]
lea ecx, [ebx + 0x20]
mov byte [esp + 0x148], 0x21
push esi
mov byte [ecx], al
call fcn.00404e60
mov byte [esp + 0x148], 0x20
jmp 0x5cf7b2
xor ebx, ebx
xor esi, esi
cmp ebx, esi
mov byte [esp + 0x148], 0x15
je 0x5cfc4d
mov edi, 0x870c08
or ecx, 0xffffffff
xor eax, eax
mov word [ebx + 0x14], si
mov word [ebx + 0x16], si
mov dword [ebx + 0x18], esi
mov dword [ebx + 0x1c], esi
lea edx, [ebx + 0x20]
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov dword [esp + 0x20], ecx
push ecx
mov ecx, edx
call fcn.00401b40
test al, al
je 0x5cf81d
mov eax, dword [esp + 0x1c]
mov edi, dword [ebx + 0x24]
mov ecx, eax
mov esi, 0x870c08
mov edx, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, dword [ebx + 0x24]
mov dword [ebx + 0x28], eax
add eax, ecx
xor esi, esi
mov byte [eax], 0
mov eax, dword [esp + 0x14]
mov dword [ebx + 0x30], esi
mov dword [ebx + 0x34], esi
mov dword [ebx + 0x38], esi
mov dword [ebx + 0x3c], esi
mov ecx, dword [eax + 0x38]
cmp ecx, esi
lea edx, [ebx + 4]
jne 0x5cf868
mov edi, 0x82fd94
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x20], ecx
push ecx
mov ecx, edx
call fcn.00401b40
test al, al
je 0x5cf8b2
mov edx, dword [esp + 0x1c]
mov edi, dword [ebx + 8]
mov ecx, edx
mov esi, 0x82fd94
jmp 0x5cf897
mov edi, 0x82fd78
or ecx, 0xffffffff
xor eax, eax
push 1
repne scasb al, byte es:[edi]
not ecx
dec ecx
mov dword [esp + 0x20], ecx
push ecx
mov ecx, edx
call fcn.00401b40
test al, al
je 0x5cf8b2
mov edx, dword [esp + 0x1c]
mov edi, dword [ebx + 8]
mov ecx, edx
mov esi, 0x82fd78
mov eax, ecx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov dword [ebx + 0xc], edx
mov eax, dword [ebx + 8]
add eax, edx
xor esi, esi
mov byte [eax], 0
mov dword [ebx + 0x40], esi
mov dword [ebx + 0x44], esi
push 0x100
mov dword [ebp + 0x1b8], ebx
call fcn.007a2d8d
add esp, 4
mov dword [esp + 0x1c], eax
cmp eax, esi
mov byte [esp + 0x148], 0x23
je 0x5cf8e4
mov ecx, eax
call fcn.00509c60
jmp 0x5cf8e6
xor eax, eax
mov ecx, dword [ebp + 0x1b8]
mov edi, dword [esp + 0x4c]
mov byte [esp + 0x148], 0x15
push edi
mov dword [ecx], eax
mov edx, dword [ebp + 0x1b8]
mov ecx, dword [edx]
mov eax, dword [ecx]
call dword [eax + 0x70]
mov eax, dword [ebp + 0x1b8]
lea ecx, [eax + 4]
push ecx
mov ecx, dword [eax]
call fcn.0040bee0
mov edx, dword [ebp + 0x1b8]
push 0x3f340000
push 0x3f340000
push esi
mov ecx, dword [edx]
push esi
call fcn.0040c600
mov eax, dword [ebp + 0x1b8]
push 0x4110
mov eax, dword [eax]
mov dword [eax + 0x78], 0xb
mov ecx, dword [ebp + 0x1b8]
mov ecx, dword [ecx]
mov edx, dword [ecx]
call dword [edx + 0x40]
mov eax, dword [esp + 0x20]
lea eax, [eax + eax*8 + 0x6c]
mov eax, dword [edi + eax*4]
cmp eax, esi
je 0x5cf9bc
add eax, 0x88
mov ecx, dword [eax]
mov dword [esp + 0x3c], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x40], edx
mov ecx, dword [eax + 8]
mov dword [esp + 0x44], ecx
mov edx, dword [eax + 0xc]
mov eax, dword [ebp + 0x1b8]
mov dword [esp + 0x48], edx
mov ecx, dword [eax]
lea eax, [esp + 0x3c]
push eax
mov edx, dword [ecx]
call dword [edx + 0x30]
mov ecx, dword [ebp + 0x1b8]
mov edx, dword [esp + 0x3c]
mov eax, dword [ecx]
add eax, 0x98
mov dword [eax], edx
mov ecx, dword [esp + 0x40]
mov dword [eax + 4], ecx
mov edx, dword [esp + 0x44]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x48]
mov dword [eax + 0xc], ecx
mov ecx, dword [ebp + 0x1a0]
mov ebx, dword [esp + 0x14]
cmp ecx, esi
je 0x5cfb23
cmp byte [ebx], 0
je 0x5cfa14
mov edi, dword [esp + 0x24]
cmp edi, esi
je 0x5cfa14
mov edx, dword [esp + 0x28]
xor eax, eax
mov al, byte [edx + 0x34]
cmp eax, 4
je 0x5cfa03
cmp eax, 3
je 0x5cfa03
cmp eax, 6
je 0x5cfa03
cmp eax, 0xc
je 0x5cfa03
mov edx, dword [ecx]
add edi, 8
push edi
jmp 0x5cfb1d
mov eax, dword [ecx]
add edx, 4
push edx
call dword [eax + 0x9c]
jmp 0x5cfb23
cmp dword [ebx + 0x3c], 2
jne 0x5cfb17
lea ecx, [esp + 0x2c]
push ecx
push 0x3071
call fcn.00709cc0
mov eax, dword [ebx + 0x2c]
add esp, 8
cmp eax, esi
mov ecx, 0x7e5658
je 0x5cfa3e
mov ecx, eax
mov eax, dword [esp + 0x30]
cmp eax, esi
jne 0x5cfa4b
mov eax, 0x7e5658
push ecx
lea edx, [esp + 0xf4]
push eax
push edx
call fcn.007a3155
mov al, byte [esp + 0x1f]
lea edi, [esp + 0xfc]
mov byte [esp + 0x74], al
or ecx, 0xffffffff
xor eax, eax
add esp, 0xc
repne scasb al, byte es:[edi]
not ecx
dec ecx
push 1
mov ebx, ecx
lea ecx, [esp + 0x6c]
push ebx
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0x7c], esi
call fcn.00401b40
test al, al
je 0x5cfabd
mov edi, dword [esp + 0x6c]
mov ecx, ebx
mov edx, ecx
lea esi, [esp + 0xf0]
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, edx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x70], ebx
xor esi, esi
mov byte [eax + ebx], 0
mov ecx, dword [ebp + 0x1a0]
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x14c], 0x24
mov edx, dword [ecx]
call dword [edx + 0x9c]
mov eax, dword [esp + 0x6c]
mov byte [esp + 0x148], 0x15
cmp eax, esi
je 0x5cfb05
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cfafc
cmp al, 0xff
je 0x5cfafc
dec al
mov byte [ecx], al
jmp 0x5cfb05
push ecx
call fcn.007a02e0
add esp, 4
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x6c], esi
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
jmp 0x5cfb23
mov edx, dword [ecx]
lea eax, [ebx + 0x28]
push eax
call dword [edx + 0x9c]
mov ecx, dword [ebp + 0x19c]
push 2
mov edx, dword [ecx]
call dword [edx + 0x3c]
mov ebp, dword [ebp + 0x198]
cmp ebp, esi
je 0x5cfb44
mov eax, dword [ebp]
push 1
mov ecx, ebp
call dword [eax + 0x44]
mov eax, dword [esp + 0x30]
add ebx, 0x44
cmp eax, esi
mov dword [esp + 0x14], ebx
mov byte [esp + 0x148], 0x13
je 0x5cfb78
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cfb6f
cmp al, 0xff
je 0x5cfb6f
dec al
mov byte [ecx], al
jmp 0x5cfb78
push ecx
call fcn.007a02e0
add esp, 4
mov ebx, dword [esp + 0x4c]
mov edi, dword [esp + 0x14]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x20]
inc esi
cmp esi, 5
mov dword [esp + 0x20], esi
jl 0x5ceeef
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x148], 0xffffffff
test ecx, ecx
je 0x5cfcb8
mov al, byte [ecx - 1]
test al, al
je 0x5cfcae
cmp al, 0xff
je 0x5cfcae
dec al
mov byte [ecx - 1], al
jmp 0x5cfcb8
mov eax, dword [esp + 0x5c]
mov byte [esp + 0x148], 0x1a
cmp eax, esi
je 0x5cfc02
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cfbf9
cmp al, 0xff
je 0x5cfbf9
dec al
mov byte [ecx], al
jmp 0x5cfc02
push ecx
call fcn.007a02e0
add esp, 4
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
cmp eax, esi
mov byte [esp + 0x148], 0x15
je 0x5cfc3b
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cfc32
cmp al, 0xff
je 0x5cfc32
dec al
mov byte [ecx], al
jmp 0x5cfc3b
push ecx
call fcn.007a02e0
add esp, 4
mov dword [esp + 0x7c], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x84], esi
mov eax, dword [esp + 0x30]
mov byte [esp + 0x148], 0x13
cmp eax, esi
je 0x5cfc7a
lea ecx, [eax - 1]
mov al, byte [eax - 1]
test al, al
je 0x5cfc71
cmp al, 0xff
je 0x5cfc71
dec al
mov byte [ecx], al
jmp 0x5cfc7a
push ecx
call fcn.007a02e0
add esp, 4
mov ecx, dword [esp + 0xe4]
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
cmp ecx, esi
mov dword [esp + 0x148], 0xffffffff
je 0x5cfcb8
mov al, byte [ecx - 1]
test al, al
je 0x5cfcae
cmp al, 0xff
je 0x5cfcae
dec al
mov byte [ecx - 1], al
jmp 0x5cfcb8
dec ecx
push ecx
call fcn.007a02e0
add esp, 4
mov ecx, dword [esp + 0x140]
pop edi
pop esi
pop ebp
pop ebx
mov dword fs:[0], ecx
add esp, 0x13c
ret 4