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

Disassembly:
mov eax, 0xc41fcb
call fcn.00be12c8
sub esp, 0x54
and dword [ebp - 0x1c], 0
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
push dword [ebx + 0x20]
lea eax, [ebx + 0x18]
push eax
mov esi, ecx
call fcn.00419768
pop ecx
cdq
pop ecx
mov ecx, 0x3e8
idiv ecx
push 0x64
pop ecx
mov eax, edx
cdq
idiv ecx
mov edx, esi
xor ecx, ecx
mov dword [ebp - 0x10], eax
call fcn.004197b6
lea edx, [esi + 0x30]
xor ecx, ecx
mov dword [esi + 8], eax
call fcn.004197b6
mov dword [esi + 0x38], eax
push dword [ebx + 0x44]
lea edi, [ebx + 0x3c]
push edi
call fcn.00419768
pop ecx
pop ecx
lea edx, [esi + 0x60]
mov ecx, eax
call fcn.004197b6
mov dword [esi + 0x68], eax
push dword [ebx + 0x44]
push edi
call fcn.00419768
pop ecx
pop ecx
lea edx, [esi + 0x90]
mov ecx, eax
call fcn.004197b6
cmp dword [ebp - 0x10], 5
mov dword [esi + 0x98], eax
jne 0x85007c
push dword [ebx + 0x20]
lea edi, [ebx + 0x18]
push edi
call fcn.00419768
pop ecx
pop ecx
push 0xa
cdq
pop ecx
idiv ecx
cmp eax, 0x33
jne 0x84ff8b
push dword [ebx + 0x50]
lea edi, [ebx + 0x48]
push edi
call fcn.00419768
push dword [ebx + 0x38]
mov dword [ebp - 0x10], eax
lea eax, [ebx + 0x30]
push eax
call fcn.00419768
mov dword [ebp + 0xc], eax
mov eax, dword [ebp - 0x10]
fild dword [ebp + 0xc]
cdq
sub eax, edx
fmul qword [0xc8ac20]
sar eax, 1
mov dword [ebp + 0xc], eax
add esp, 0x10
fild dword [ebp + 0xc]
faddp st(1)
call fcn.00be26b4
lea edx, [esi + 0xf0]
mov ecx, eax
jmp 0x85001f
push dword [ebx + 0x20]
push edi
call fcn.00419768
pop ecx
pop ecx
push 0xa
pop ecx
cdq
idiv ecx
push dword [ebx + 0x50]
lea edi, [ebx + 0x48]
push edi
cmp eax, 0x34
jne 0x84ffd9
call fcn.00419768
push dword [ebx + 0x38]
mov dword [ebp + 0xc], eax
lea eax, [ebx + 0x30]
push eax
call fcn.00419768
add esp, 0x10
cdq
push 8
pop ecx
idiv ecx
mov ecx, eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
add ecx, eax
lea edx, [esi + 0xf0]
jmp 0x85001f
call fcn.00419768
push dword [ebx + 0x38]
mov dword [ebp + 0xc], eax
lea eax, [ebx + 0x30]
push eax
call fcn.00419768
add esp, 0x10
cdq
push 4
pop ecx
idiv ecx
mov ecx, eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
sar eax, 1
add ecx, eax
lea edx, [esi + 0xf0]
mov dword [ebp + 0xc], ecx
call fcn.004197b6
mov ecx, dword [ebp + 0xc]
mov dword [esi + 0xf8], eax
lea edx, [esi + 0xf0]
call fcn.004197b6
mov dword [esi + 0xf8], eax
push dword [ebx + 0x20]
lea eax, [ebx + 0x18]
push eax
call fcn.00419768
pop ecx
pop ecx
push 0xa
cdq
pop ecx
idiv ecx
cmp eax, 0x33
jne 0x85010f
push dword [ebx + 0x38]
lea eax, [ebx + 0x30]
push eax
call fcn.00419768
push dword [ebx + 0x50]
mov dword [ebp + 0xc], eax
push edi
call fcn.00419768
fild dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
add esp, 0x10
fmul qword [0xc85dd0]
fild dword [ebp - 0x10]
fmul qword [0xc8b2a0]
jmp 0x8501a9
push dword [ebx + 0x50]
lea edi, [ebx + 0x48]
push edi
call fcn.00419768
push dword [ebx + 0x38]
mov dword [ebp + 0xc], eax
lea eax, [ebx + 0x30]
push eax
call fcn.00419768
mov ecx, eax
mov eax, dword [ebp + 0xc]
cdq
sub eax, edx
mov dword [ebp + 0xc], eax
mov eax, ecx
add esp, 0x10
push 4
cdq
pop ecx
idiv ecx
sar dword [ebp + 0xc], 1
mov ecx, dword [ebp + 0xc]
lea edx, [esi + 0xf0]
add ecx, eax
call fcn.004197b6
cmp dword [ebp - 0x10], 3
mov dword [esi + 0xf8], eax
je 0x850179
cmp dword [ebp - 0x10], 4
je 0x850179
push dword [ebx + 0x38]
lea eax, [ebx + 0x30]
push eax
call fcn.00419768
push dword [ebx + 0x50]
mov dword [ebp + 0xc], eax
push edi
call fcn.00419768
fild dword [ebp + 0xc]
mov dword [ebp - 0x10], eax
add esp, 0x10
fmul qword [0xc83d08]
fild dword [ebp - 0x10]
fmul qword [0xc83d10]
jmp 0x8501a9
push dword [ebx + 0x20]
lea eax, [ebx + 0x18]
push eax
call fcn.00419768
pop ecx
pop ecx
push 0xa
cdq
pop ecx
idiv ecx
push dword [ebx + 0x38]
cmp eax, 0x34
lea eax, [ebx + 0x30]
push eax
jne 0x850154
call fcn.00419768
push dword [ebx + 0x50]
mov dword [ebp - 0x10], eax
push edi
call fcn.00419768
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
add esp, 0x10
fmul qword [0xc8b2a0]
fild dword [ebp - 0x10]
jmp 0x8501a3
call fcn.00419768
push dword [ebx + 0x50]
mov dword [ebp - 0x10], eax
push edi
call fcn.00419768
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
add esp, 0x10
fmul qword [0xc8b2a0]
fild dword [ebp - 0x10]
jmp 0x8501a3
push dword [ebx + 0x38]
lea eax, [ebx + 0x30]
push eax
call fcn.00419768
push dword [ebx + 0x50]
mov dword [ebp - 0x10], eax
push edi
call fcn.00419768
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
add esp, 0x10
fmul qword [0xc8b2a0]
fild dword [ebp - 0x10]
fmul qword [0xc8ac48]
faddp st(1)
call fcn.00be26b4
lea edx, [esi + 0xc0]
mov ecx, eax
call fcn.004197b6
mov dword [esi + 0xc8], eax
push dword [ebx + 0x44]
lea eax, [ebx + 0x3c]
push eax
call fcn.00419768
push dword [ebx + 0x38]
mov dword [ebp - 0x10], eax
lea eax, [ebx + 0x30]
push eax
call fcn.00419768
push dword [ebx + 0x50]
mov dword [ebp + 0xc], eax
push edi
call fcn.00419768
mov ecx, dword [ebp + 0xc]
add ecx, eax
add ecx, dword [ebp - 0x10]
add esp, 0x18
lea edx, [esi + 0x120]
call fcn.004197b6
push 0x64
lea edx, [esi + 0x150]
pop ecx
mov dword [esi + 0x128], eax
call fcn.004197b6
push 0x64
lea edx, [esi + 0x180]
pop ecx
mov dword [esi + 0x158], eax
call fcn.004197b6
mov dword [esi + 0x188], eax
mov eax, dword [ebp + 8]
lea ecx, [eax + 0x38d]
mov eax, dword [ecx + 4]
test eax, eax
je 0x850256
mov ecx, dword [ecx + 8]
lea ecx, [eax + ecx*4]
cmp eax, ecx
jae 0x850256
cmp dword [eax], 0
jne 0x850252
add eax, 4
jmp 0x850244
mov eax, dword [eax]
jmp 0x850258
xor eax, eax
test eax, eax
mov dword [ebp - 0x18], eax
je 0x85047b
xor edi, edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x3c], edi
mov dword [ebp - 0x38], edi
lea eax, [ebp - 0x3c]
push eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp + 8]
lea ecx, [eax + 0x38d]
mov dword [ebp - 4], edi
call fcn.0086c479
mov dword [ebp - 0x2c], edi
lea eax, [ebp - 0x30]
push eax
lea eax, [ebp - 0x3c]
push eax
mov eax, dword [0xd7c420]
lea ecx, [eax + 0x84]
mov byte [ebp - 4], 1
call fcn.0086c4ee
test eax, eax
je 0x850458
cmp dword [ebp - 0x38], edi
mov dword [ebp + 0xc], edi
jle 0x850458
mov eax, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x2c]
mov edi, eax
shl edi, 3
cmp dword [edi + ecx + 0xc], 0
je 0x850449
test eax, eax
jl 0x850449
cmp eax, 0x26
jg 0x850449
push dword [esi + 8]
push esi
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [edi + ecx + 0xc]
movsx ecx, word [ecx + 0xc]
add ecx, eax
mov edx, esi
call fcn.004197b6
push dword [esi + 0x38]
mov dword [esi + 8], eax
lea eax, [esi + 0x30]
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [edi + ecx + 0xc]
movsx ecx, word [ecx + 0x10]
add ecx, eax
lea edx, [esi + 0x30]
call fcn.004197b6
push dword [esi + 0x68]
mov dword [esi + 0x38], eax
lea eax, [esi + 0x60]
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [edi + ecx + 0xc]
movsx ecx, word [ecx + 0xe]
add ecx, eax
lea edx, [esi + 0x60]
call fcn.004197b6
push dword [esi + 0x98]
mov dword [esi + 0x68], eax
lea eax, [esi + 0x90]
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [edi + ecx + 0xc]
movsx ecx, word [ecx + 0x12]
add ecx, eax
lea edx, [esi + 0x90]
call fcn.004197b6
push dword [esi + 0xc8]
mov dword [esi + 0x98], eax
lea eax, [esi + 0xc0]
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [edi + ecx + 0xc]
movsx ecx, word [ecx + 0x14]
add ecx, eax
lea edx, [esi + 0xc0]
call fcn.004197b6
push dword [esi + 0xf8]
mov dword [esi + 0xc8], eax
lea eax, [esi + 0xf0]
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [edi + ecx + 0xc]
movsx ecx, word [ecx + 0x16]
add ecx, eax
lea edx, [esi + 0xf0]
call fcn.004197b6
push dword [esi + 0x188]
mov dword [esi + 0xf8], eax
lea eax, [esi + 0x180]
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
mov ecx, dword [edi + ecx + 0xc]
movsx ecx, word [ecx + 0x1c]
add ecx, eax
lea edx, [esi + 0x180]
call fcn.004197b6
push dword [esi + 0x158]
mov dword [esi + 0x188], eax
lea eax, [esi + 0x150]
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp - 0x2c]
mov edi, dword [edi + ecx + 0xc]
movsx ecx, word [edi + 0x1a]
add ecx, eax
lea edx, [esi + 0x150]
call fcn.004197b6
mov dword [esi + 0x158], eax
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
cmp eax, dword [ebp - 0x38]
jl 0x8502ba
and byte [ebp - 4], 0
lea ecx, [ebp - 0x30]
call fcn.0086c3ff
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x34]
call fcn.004642ea
xor edi, edi
cmp dword [ebp - 0x18], edi
jne 0x850265
push dword [ebp + 8]
xor eax, eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x54], eax
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x60], eax
call fcn.0082e19a
mov dword [ebp - 0x2c], eax
or eax, 0xffffffff
pop ecx
mov dword [ebp - 0x10], eax
cmp eax, 0xffffffdb
jge 0x8504b2
mov edi, dword [ebp + 0x18]
lea ecx, [eax*8 + 0x128]
jmp 0x8504ba
mov edi, dword [ebp + 0x14]
mov ecx, eax
shl ecx, 3
sub edi, ecx
cmp dword [edi + 4], 0
jne 0x85055b
cmp eax, 0xfffffff5
jne 0x85099d
push dword [ebx + 0x20]
lea eax, [ebx + 0x18]
push eax
call fcn.00419768
pop ecx
cdq
pop ecx
mov ecx, 0x3e8
idiv ecx
push 0x64
pop ecx
mov eax, edx
cdq
idiv ecx
cmp eax, 5
jne 0x85099d
push dword [ebx + 0x14]
lea edi, [ebx + 0xc]
push edi
call fcn.00419768
cmp eax, 0x1e
pop ecx
pop ecx
jg 0x850528
push dword [ebx + 0x14]
push edi
call fcn.00419768
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
pop ecx
pop ecx
fmul qword [0xc8c5a0]
fadd qword [0xc8ac18]
jmp 0x85052e
fld qword [0xc8c598]
push dword [esi + 8]
fstp qword [ebp - 0x38]
push esi
call fcn.00419768
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
pop ecx
pop ecx
fadd qword [ebp - 0x38]
call fcn.00be26b4
mov edx, esi
mov ecx, eax
call fcn.004197b6
mov dword [esi + 8], eax
jmp 0x85099d
cmp eax, 0xffffffea
je 0x85099d
cmp eax, 0xffffffe8
je 0x85099d
cmp eax, 0xffffffe9
je 0x85099d
cmp eax, 0xffffffe7
je 0x85099d
mov ecx, esi
call fcn.007d9f06
test eax, eax
jne 0x8505a8
cmp dword [ebp - 0x10], 0xffffffee
je 0x85099d
cmp dword [ebp - 0x10], 0xffffffed
je 0x85099d
cmp dword [ebp - 0x10], 0xffffffec
je 0x85099d
push dword [esi + 8]
mov edi, dword [edi + 4]
push esi
call fcn.00419768
push dword [edi + 0x89]
mov dword [ebp + 0xc], eax
lea eax, [edi + 0x85]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0xc]
add esp, 0x10
mov edx, esi
call fcn.004197b6
cmp dword [ebp - 0x10], 0xfffffff6
mov dword [esi + 8], eax
push dword [edi + 0x99]
lea eax, [edi + 0x95]
push eax
jne 0x850605
call fcn.004878ba
movsx eax, ax
imul eax, dword [ebp - 0x2c]
pop ecx
pop ecx
push 0x64
cdq
pop ecx
idiv ecx
jmp 0x85060f
call fcn.004878ba
pop ecx
pop ecx
movsx eax, ax
push dword [esi + 0x38]
mov dword [ebp + 0xc], eax
lea eax, [esi + 0x30]
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 0xc]
add ecx, eax
lea edx, [esi + 0x30]
call fcn.004197b6
push dword [esi + 0x68]
mov dword [esi + 0x38], eax
lea eax, [esi + 0x60]
push eax
call fcn.00419768
push dword [edi + 0x91]
mov dword [ebp + 0xc], eax
lea eax, [edi + 0x8d]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0xc]
add esp, 0x10
lea edx, [esi + 0x60]
call fcn.004197b6
push dword [esi + 0x98]
mov dword [esi + 0x68], eax
lea eax, [esi + 0x90]
push eax
call fcn.00419768
push dword [edi + 0xa1]
mov dword [ebp + 0xc], eax
lea eax, [edi + 0x9d]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0xc]
add esp, 0x10
lea edx, [esi + 0x90]
call fcn.004197b6
push dword [esi + 0xc8]
mov dword [esi + 0x98], eax
lea eax, [esi + 0xc0]
push eax
call fcn.00419768
push dword [edi + 0xa9]
mov dword [ebp + 0xc], eax
lea eax, [edi + 0xa5]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0xc]
add esp, 0x10
lea edx, [esi + 0xc0]
call fcn.004197b6
push dword [esi + 0xf8]
mov dword [esi + 0xc8], eax
lea eax, [esi + 0xf0]
push eax
call fcn.00419768
push dword [edi + 0xb1]
mov dword [ebp + 0xc], eax
lea eax, [edi + 0xad]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0xc]
add esp, 0x10
lea edx, [esi + 0xf0]
call fcn.004197b6
push dword [esi + 0x128]
mov dword [esi + 0xf8], eax
lea eax, [esi + 0x120]
push eax
call fcn.00419768
push dword [edi + 0xb9]
mov dword [ebp + 0xc], eax
lea eax, [edi + 0xb5]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0xc]
add esp, 0x10
lea edx, [esi + 0x120]
call fcn.004197b6
push dword [esi + 0x158]
mov dword [esi + 0x128], eax
lea eax, [esi + 0x150]
push eax
call fcn.00419768
push dword [edi + 0xc1]
mov dword [ebp + 0xc], eax
lea eax, [edi + 0xbd]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0xc]
add esp, 0x10
lea edx, [esi + 0x150]
call fcn.004197b6
push dword [esi + 0x188]
mov dword [esi + 0x158], eax
lea eax, [esi + 0x180]
push eax
call fcn.00419768
push dword [edi + 0xc9]
mov dword [ebp + 0xc], eax
lea eax, [edi + 0xc5]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0xc]
add esp, 0x10
lea edx, [esi + 0x180]
call fcn.004197b6
mov dword [esi + 0x188], eax
mov eax, dword [0xd7c420]
lea ecx, [edi + 0xc]
mov dword [ebp + 0xc], eax
call fcn.0042d5a8
mov ecx, dword [ebp + 0xc]
push eax
call fcn.00670865
test eax, eax
je 0x85099d
push dword [eax + 0x68]
add eax, 0x60
push eax
call fcn.00419768
dec eax
push 0xa
cdq
pop ecx
idiv ecx
push dword [edi + 0x12d]
mov dword [ebp + 0xc], eax
lea eax, [edi + 0x129]
push eax
call fcn.004878ba
add esp, 0x10
push dword [ebp + 0xc]
movsx eax, ax
push eax
mov ecx, esi
call fcn.0084fe10
push dword [edi + 0x135]
lea eax, [edi + 0x131]
push eax
call fcn.004878ba
pop ecx
pop ecx
push dword [ebp + 0xc]
movsx eax, ax
push eax
mov ecx, esi
call fcn.0084fe10
push dword [edi + 0x12d]
lea eax, [edi + 0x129]
push eax
call fcn.004878ba
pop ecx
pop ecx
lea ecx, [ebp - 0x60]
push ecx
push dword [ebp + 0xc]
movsx eax, ax
push eax
mov ecx, esi
call fcn.0084fe50
push dword [edi + 0x135]
lea eax, [edi + 0x131]
push eax
call fcn.004878ba
pop ecx
pop ecx
lea ecx, [ebp - 0x60]
push ecx
push dword [ebp + 0xc]
movsx eax, ax
push eax
mov ecx, esi
call fcn.0084fe50
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 0x80]
test eax, eax
je 0x85099d
push dword [edi + 0x115]
lea eax, [edi + 0x111]
push eax
call fcn.004878ba
pop ecx
pop ecx
push dword [ebp + 0xc]
movsx eax, ax
push eax
mov ecx, esi
call fcn.0084fc0b
push dword [edi + 0x11d]
lea eax, [edi + 0x119]
push eax
call fcn.004878ba
pop ecx
pop ecx
push dword [ebp + 0xc]
movsx eax, ax
push eax
mov ecx, esi
call fcn.0084fc0b
push dword [edi + 0x125]
lea eax, [edi + 0x121]
push eax
call fcn.004878ba
pop ecx
pop ecx
push dword [ebp + 0xc]
movsx eax, ax
push eax
mov ecx, esi
call fcn.0084fc0b
push dword [edi + 0x115]
lea eax, [edi + 0x111]
push eax
call fcn.004878ba
pop ecx
pop ecx
lea ecx, [ebp - 0x60]
push ecx
push dword [ebp + 0xc]
movsx eax, ax
push eax
mov ecx, esi
call fcn.0084fd8f
push dword [edi + 0x11d]
lea eax, [edi + 0x119]
push eax
call fcn.004878ba
pop ecx
pop ecx
lea ecx, [ebp - 0x60]
push ecx
push dword [ebp + 0xc]
movsx eax, ax
push eax
mov ecx, esi
call fcn.0084fd8f
push dword [edi + 0x125]
add edi, 0x121
push edi
call fcn.004878ba
pop ecx
pop ecx
lea ecx, [ebp - 0x60]
push ecx
push dword [ebp + 0xc]
movsx eax, ax
push eax
mov ecx, esi
call fcn.0084fd8f
mov eax, dword [ebp - 0x10]
dec eax
cmp eax, 0xffffffb6
mov dword [ebp - 0x10], eax
jge 0x8504a1
mov eax, dword [ebp + 0x1c]
add eax, 4
mov dword [ebp + 0xc], eax
mov dword [ebp + 0x18], 4
mov eax, dword [ebp + 0xc]
mov edi, dword [eax]
test edi, edi
je 0x850beb
push dword [esi + 8]
push esi
call fcn.00419768
push dword [edi + 0x89]
mov dword [ebp + 0x1c], eax
lea eax, [edi + 0x85]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0x1c]
add esp, 0x10
mov edx, esi
call fcn.004197b6
push dword [esi + 0x38]
mov dword [esi + 8], eax
lea eax, [esi + 0x30]
push eax
call fcn.00419768
push dword [edi + 0x99]
mov dword [ebp + 0x1c], eax
lea eax, [edi + 0x95]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0x1c]
add esp, 0x10
lea edx, [esi + 0x30]
call fcn.004197b6
push dword [esi + 0x68]
mov dword [esi + 0x38], eax
lea eax, [esi + 0x60]
push eax
call fcn.00419768
push dword [edi + 0x91]
mov dword [ebp + 0x1c], eax
lea eax, [edi + 0x8d]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0x1c]
add esp, 0x10
lea edx, [esi + 0x60]
call fcn.004197b6
push dword [esi + 0x98]
mov dword [esi + 0x68], eax
lea eax, [esi + 0x90]
push eax
call fcn.00419768
push dword [edi + 0xa1]
mov dword [ebp + 0x1c], eax
lea eax, [edi + 0x9d]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0x1c]
add esp, 0x10
lea edx, [esi + 0x90]
call fcn.004197b6
push dword [esi + 0xc8]
mov dword [esi + 0x98], eax
lea eax, [esi + 0xc0]
push eax
call fcn.00419768
push dword [edi + 0xa9]
mov dword [ebp + 0x1c], eax
lea eax, [edi + 0xa5]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0x1c]
add esp, 0x10
lea edx, [esi + 0xc0]
call fcn.004197b6
push dword [esi + 0xf8]
mov dword [esi + 0xc8], eax
lea eax, [esi + 0xf0]
push eax
call fcn.00419768
push dword [edi + 0xb1]
mov dword [ebp + 0x1c], eax
lea eax, [edi + 0xad]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0x1c]
add esp, 0x10
lea edx, [esi + 0xf0]
call fcn.004197b6
push dword [esi + 0x128]
mov dword [esi + 0xf8], eax
lea eax, [esi + 0x120]
push eax
call fcn.00419768
push dword [edi + 0xb9]
mov dword [ebp + 0x1c], eax
lea eax, [edi + 0xb5]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0x1c]
add esp, 0x10
lea edx, [esi + 0x120]
call fcn.004197b6
push dword [esi + 0x158]
mov dword [esi + 0x128], eax
lea eax, [esi + 0x150]
push eax
call fcn.00419768
push dword [edi + 0xc1]
mov dword [ebp + 0x1c], eax
lea eax, [edi + 0xbd]
push eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0x1c]
add esp, 0x10
lea edx, [esi + 0x150]
call fcn.004197b6
push dword [esi + 0x188]
mov dword [esi + 0x158], eax
lea eax, [esi + 0x180]
push eax
call fcn.00419768
push dword [edi + 0xc9]
add edi, 0xc5
push edi
mov dword [ebp + 0x1c], eax
call fcn.004878ba
movsx ecx, ax
add ecx, dword [ebp + 0x1c]
add esp, 0x10
lea edx, [esi + 0x180]
call fcn.004197b6
mov dword [esi + 0x188], eax
add dword [ebp + 0xc], 8
dec dword [ebp + 0x18]
jne 0x8509bd
mov ecx, dword [0xd7c424]
and dword [ebp - 0x14], 0
push 0xd85e24
push 0x2dc6c0
push dword [ebp + 8]
call fcn.0082a0da
test eax, eax
mov dword [ebp + 0xc], eax
je 0x850c65
push dword [esi + 0xc8]
lea edi, [esi + 0xc0]
push edi
call fcn.00419768
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [0xd85e24]
mov dword [ebp + 0x18], eax
call fcn.00829584
push dword [eax + 0x15c]
add eax, 0x154
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 0x18]
add ecx, eax
mov edx, edi
call fcn.004197b6
mov dword [esi + 0xc8], eax
mov ecx, dword [0xd7c424]
push 0xd85e28
push 0x3d0900
push dword [ebp + 8]
call fcn.0082a0da
test eax, eax
mov dword [ebp + 0xc], eax
je 0x850d1c
push dword [esi + 0xc8]
lea edi, [esi + 0xc0]
push edi
call fcn.00419768
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [0xd85e28]
mov dword [ebp + 0x18], eax
call fcn.00829584
push dword [eax + 0x15c]
add eax, 0x154
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 0x18]
add ecx, eax
mov edx, edi
call fcn.004197b6
push dword [esi + 0xf8]
lea edi, [esi + 0xf0]
push edi
mov dword [esi + 0xc8], eax
call fcn.00419768
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [0xd85e28]
mov dword [ebp + 0x18], eax
call fcn.00829584
push dword [eax + 0x168]
add eax, 0x160
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 0x18]
add ecx, eax
mov edx, edi
call fcn.004197b6
mov dword [esi + 0xf8], eax
mov ecx, dword [0xd7c424]
push 0xd85e38
push 0xd59f80
push dword [ebp + 8]
call fcn.0082a0da
test eax, eax
mov dword [ebp + 0xc], eax
je 0x850dd3
push dword [esi + 0xc8]
lea edi, [esi + 0xc0]
push edi
call fcn.00419768
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [0xd85e38]
mov dword [ebp + 0x18], eax
call fcn.00829584
push dword [eax + 0x15c]
add eax, 0x154
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 0x18]
add ecx, eax
mov edx, edi
call fcn.004197b6
push dword [esi + 0xf8]
lea edi, [esi + 0xf0]
push edi
mov dword [esi + 0xc8], eax
call fcn.00419768
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [0xd85e38]
mov dword [ebp + 0x18], eax
call fcn.00829584
push dword [eax + 0x168]
add eax, 0x160
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 0x18]
add ecx, eax
mov edx, edi
call fcn.004197b6
mov dword [esi + 0xf8], eax
mov ecx, dword [0xd7c424]
push 0xd85e2c
push 0x4c4b40
push dword [ebp + 8]
call fcn.0082a0da
test eax, eax
mov dword [ebp + 0xc], eax
je 0x850e8a
push dword [esi + 0xc8]
lea edi, [esi + 0xc0]
push edi
call fcn.00419768
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [0xd85e2c]
mov dword [ebp + 0x18], eax
call fcn.00829584
push dword [eax + 0x15c]
add eax, 0x154
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 0x18]
add ecx, eax
mov edx, edi
call fcn.004197b6
push dword [esi + 0xf8]
lea edi, [esi + 0xf0]
push edi
mov dword [esi + 0xc8], eax
call fcn.00419768
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [0xd85e2c]
mov dword [ebp + 0x18], eax
call fcn.00829584
push dword [eax + 0x168]
add eax, 0x160
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 0x18]
add ecx, eax
mov edx, edi
call fcn.004197b6
mov dword [esi + 0xf8], eax
mov ecx, dword [0xd7c424]
push 0xd85e30
push 0xe4e1c0
push dword [ebp + 8]
call fcn.0082a0da
test eax, eax
mov dword [ebp + 0xc], eax
je 0x850f41
push dword [esi + 0xc8]
lea edi, [esi + 0xc0]
push edi
call fcn.00419768
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [0xd85e30]
mov dword [ebp + 0x18], eax
call fcn.00829584
push dword [eax + 0x15c]
add eax, 0x154
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 0x18]
add ecx, eax
mov edx, edi
call fcn.004197b6
push dword [esi + 0xf8]
lea edi, [esi + 0xf0]
push edi
mov dword [esi + 0xc8], eax
call fcn.00419768
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [0xd85e30]
mov dword [ebp + 0x18], eax
call fcn.00829584
push dword [eax + 0x168]
add eax, 0x160
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 0x18]
add ecx, eax
mov edx, edi
call fcn.004197b6
mov dword [esi + 0xf8], eax
mov ecx, dword [0xd7c424]
push 0xd85e3c
push 0x14fb180
push dword [ebp + 8]
call fcn.0082a0da
test eax, eax
mov dword [ebp + 0xc], eax
je 0x850f9c
push dword [esi + 0x68]
lea edi, [esi + 0x60]
push edi
call fcn.00419768
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [0xd85e3c]
mov dword [ebp + 0x18], eax
call fcn.00829584
push dword [eax + 0x3c]
add eax, 0x34
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 0x18]
add ecx, eax
mov edx, edi
call fcn.004197b6
mov dword [esi + 0x68], eax
mov ecx, dword [0xd7c424]
push 0xd85e40
push 0x1f937f0
push dword [ebp + 8]
call fcn.0082a0da
test eax, eax
mov dword [ebp + 0xc], eax
je 0x851005
push dword [esi + 0xf8]
lea edi, [esi + 0xf0]
push edi
call fcn.00419768
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [0xd85e40]
mov dword [ebp + 0x18], eax
call fcn.00829584
push dword [eax + 0x168]
add eax, 0x160
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 0x18]
add ecx, eax
mov edx, edi
call fcn.004197b6
mov dword [esi + 0xf8], eax
mov eax, dword [ebp + 8]
push dword [eax + 0x3d]
add eax, 0x39
push eax
call fcn.004878ba
pop ecx
pop ecx
movsx ecx, ax
mov eax, ecx
push 0x64
cdq
pop edi
idiv edi
mov edx, 0x7d1
cmp eax, 0x16
je 0x85102f
cmp ecx, edx
jne 0x851033
mov eax, edx
jmp 0x851043
mov eax, ecx
cdq
mov ecx, 0x3e8
idiv ecx
imul eax, eax, 0x3e8
imul eax, eax, 0x2710
lea ecx, [ebp - 0x14]
push ecx
mov ecx, dword [0xd7c424]
add eax, 0xc
push eax
push dword [ebp + 8]
call fcn.0082a0da
test eax, eax
mov dword [ebp + 0xc], eax
je 0x85116e
push dword [esi + 8]
push esi
call fcn.00419768
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0x14]
mov edi, eax
call fcn.00829584
push dword [eax + 0x15c]
add eax, 0x154
push eax
call fcn.00419768
pop ecx
pop ecx
lea ecx, [eax + edi]
mov edx, esi
call fcn.004197b6
push dword [esi + 0x68]
lea edi, [esi + 0x60]
push edi
mov dword [esi + 8], eax
call fcn.00419768
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0x14]
mov dword [ebp + 0x18], eax
call fcn.00829584
push dword [eax + 0x168]
add eax, 0x160
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 0x18]
add ecx, eax
mov edx, edi
call fcn.004197b6
push dword [esi + 0xc8]
lea edi, [esi + 0xc0]
push edi
mov dword [esi + 0x68], eax
call fcn.00419768
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0x14]
mov dword [ebp + 0x18], eax
call fcn.00829584
push dword [eax + 0x174]
add eax, 0x16c
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 0x18]
add ecx, eax
mov edx, edi
call fcn.004197b6
push dword [esi + 0xf8]
lea edi, [esi + 0xf0]
push edi
mov dword [esi + 0xc8], eax
call fcn.00419768
pop ecx
pop ecx
push dword [ebp + 0xc]
mov ecx, dword [ebp - 0x14]
mov dword [ebp + 0x18], eax
call fcn.00829584
push dword [eax + 0x174]
add eax, 0x16c
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 0x18]
add ecx, eax
mov edx, edi
call fcn.004197b6
mov dword [esi + 0xf8], eax
mov eax, dword [ebp + 0x14]
mov eax, dword [eax + 0x5c]
test eax, eax
je 0x85117d
add eax, 0xc
jmp 0x851195
push 0
lea ecx, [ebp - 0x48]
call fcn.004d779a
mov dword [ebp - 0x1c], 1
mov dword [ebp - 4], 2
mov ecx, eax
call fcn.0042d5a8
or dword [ebp - 4], 0xffffffff
test byte [ebp - 0x1c], 1
mov dword [ebp + 0xc], eax
je 0x8511bc
cmp dword [ebp - 0x40], 0
je 0x8511bc
push dword [ebp - 0x40]
mov ecx, 0xd86a88
call fcn.00403243
push dword [ebx + 0x20]
xor eax, eax
lea edi, [ebx + 0x18]
push edi
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x28], eax
mov dword [ebp + 0x14], eax
call fcn.00419768
pop ecx
cdq
pop ecx
mov ecx, 0x3e8
idiv ecx
push 0x64
pop ecx
mov eax, edx
cdq
idiv ecx
cmp eax, 3
je 0x851219
push dword [ebx + 0x20]
push edi
call fcn.00419768
pop ecx
pop ecx
push 0xa
cdq
pop ecx
idiv ecx
cmp eax, 0x29
je 0x851219
push dword [ebx + 0x20]
push edi
call fcn.00419768
pop ecx
pop ecx
push 0xa
cdq
pop ecx
idiv ecx
cmp eax, 0x34
jne 0x851220
mov dword [ebp + 0x14], 1
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x20]
push eax
push 0
push dword [ebp + 0x14]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.0082dd34
add esp, 0x18
test eax, eax
je 0x85127f
push dword [esi + 0xc8]
lea ebx, [esi + 0xc0]
push ebx
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp - 0x20]
add ecx, eax
mov edx, ebx
call fcn.004197b6
push dword [esi + 8]
mov dword [esi + 0xc8], eax
push esi
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp - 0x24]
add ecx, eax
mov edx, esi
call fcn.004197b6
mov dword [esi + 8], eax
push dword [ebp + 0xc]
lea eax, [ebp - 0x28]
push eax
push dword [ebp + 8]
call fcn.0082e2ea
add esp, 0xc
test eax, eax
je 0x8512b2
push dword [esi + 0x68]
lea edi, [esi + 0x60]
push edi
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp - 0x28]
add ecx, eax
mov edx, edi
call fcn.004197b6
mov dword [esi + 0x68], eax
push dword [esi + 0x158]
lea ebx, [esi + 0x150]
push ebx
call fcn.00419768
push dword [ebp + 8]
mov edi, eax
call fcn.0082f631
add eax, edi
add esp, 0xc
mov edx, ebx
mov ecx, eax
call fcn.004197b6
push dword [esi + 0x89c]
lea edi, [esi + 0x894]
push edi
mov dword [esi + 0x158], eax
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jle 0x8513f6
push dword [esi + 0x8a8]
lea eax, [esi + 0x8a0]
push eax
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [0xd7c424]
push eax
call fcn.00824297
test eax, eax
mov dword [ebp + 8], eax
je 0x8513f6
push dword [esi + 0x89c]
push edi
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 8]
push eax
call fcn.00829584
push dword [esi + 0x158]
mov edi, eax
push ebx
call fcn.00419768
push dword [edi + 0x15c]
add edi, 0x154
push edi
mov dword [ebp + 8], eax
call fcn.00419768
add eax, dword [ebp + 8]
add esp, 0x10
mov edx, ebx
mov ecx, eax
call fcn.004197b6
push dword [esi + 0x818]
lea edi, [esi + 0x810]
push edi
mov dword [esi + 0x158], eax
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jle 0x8513f6
mov ecx, dword [0xd7c424]
push 0x1e9f9a0
call fcn.00824297
test eax, eax
mov dword [ebp + 8], eax
je 0x8513f6
push dword [esi + 0x818]
push edi
call fcn.00419768
pop ecx
pop ecx
mov ecx, dword [ebp + 8]
push eax
call fcn.00829584
push dword [esi + 0x158]
mov edi, eax
push ebx
call fcn.00419768
push dword [edi + 0x15c]
add edi, 0x154
push edi
mov dword [ebp + 8], eax
call fcn.00419768
add eax, dword [ebp + 8]
add esp, 0x10
mov edx, ebx
mov ecx, eax
call fcn.004197b6
mov dword [esi + 0x158], eax
mov edi, dword [ebp + 0x10]
push dword [edi + 0x38]
lea ebx, [edi + 0x30]
push ebx
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jle 0x851422
push dword [edi + 0x38]
push ebx
call fcn.00419768
pop ecx
pop ecx
mov edx, esi
mov ecx, eax
call fcn.004197b6
mov dword [esi + 8], eax
push dword [edi + 0x44]
lea ebx, [edi + 0x3c]
push ebx
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jle 0x85144c
push dword [edi + 0x44]
push ebx
call fcn.00419768
pop ecx
pop ecx
lea edx, [esi + 0x30]
mov ecx, eax
call fcn.004197b6
mov dword [esi + 0x38], eax
push dword [edi + 0x50]
lea ebx, [edi + 0x48]
push ebx
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jle 0x851476
push dword [edi + 0x50]
push ebx
call fcn.00419768
pop ecx
pop ecx
lea edx, [esi + 0x60]
mov ecx, eax
call fcn.004197b6
mov dword [esi + 0x68], eax
push dword [edi + 0x5c]
lea ebx, [edi + 0x54]
push ebx
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jle 0x8514a6
push dword [edi + 0x5c]
push ebx
call fcn.00419768
pop ecx
pop ecx
lea edx, [esi + 0x90]
mov ecx, eax
call fcn.004197b6
mov dword [esi + 0x98], eax
push dword [edi + 0x68]
lea ebx, [edi + 0x60]
push ebx
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jle 0x8514d6
push dword [edi + 0x68]
push ebx
call fcn.00419768
pop ecx
pop ecx
lea edx, [esi + 0xc0]
mov ecx, eax
call fcn.004197b6
mov dword [esi + 0xc8], eax
push dword [edi + 0x74]
lea ebx, [edi + 0x6c]
push ebx
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jle 0x851506
push dword [edi + 0x74]
push ebx
call fcn.00419768
pop ecx
pop ecx
lea edx, [esi + 0xf0]
mov ecx, eax
call fcn.004197b6
mov dword [esi + 0xf8], eax
push dword [edi + 0x80]
lea ebx, [edi + 0x80]
lea eax, [edi + 0x78]
push eax
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jle 0x851541
push dword [ebx]
lea eax, [edi + 0x78]
push eax
call fcn.00419768
pop ecx
pop ecx
lea edx, [esi + 0x150]
mov ecx, eax
call fcn.004197b6
mov dword [esi + 0x158], eax
push dword [edi + 0x8c]
lea ebx, [edi + 0x8c]
add edi, 0x84
push edi
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jle 0x85157c
push dword [ebx]
push edi
call fcn.00419768
pop ecx
pop ecx
lea edx, [esi + 0x180]
mov ecx, eax
call fcn.004197b6
mov dword [esi + 0x188], eax
push dword [esi + 8]
push esi
call fcn.00419768
push dword [esi + 8]
mov edi, eax
push esi
call fcn.00419768
imul eax, dword [ebp - 0x60]
add esp, 0x10
cdq
push 0x64
pop ecx
idiv ecx
mov edx, esi
add eax, edi
mov ecx, eax
call fcn.004197b6
push dword [esi + 0x38]
lea ebx, [esi + 0x30]
push ebx
mov dword [esi + 8], eax
call fcn.00419768
push dword [esi + 0x38]
mov edi, eax
push ebx
call fcn.00419768
mov ecx, eax
mov eax, dword [ebp - 0x5c]
imul eax, ecx
add esp, 0x10
cdq
push 0x64
pop ecx
idiv ecx
mov edx, ebx
add eax, edi
mov ecx, eax
call fcn.004197b6
push dword [esi + 0x68]
lea edi, [esi + 0x60]
push edi
mov dword [esi + 0x38], eax
call fcn.00419768
push dword [esi + 0x68]
mov dword [ebp + 8], eax
push edi
call fcn.00419768
mov ecx, eax
mov eax, dword [ebp - 0x58]
imul eax, ecx
add esp, 0x10
cdq
push 0x64
pop ecx
idiv ecx
mov edx, edi
add eax, dword [ebp + 8]
mov ecx, eax
call fcn.004197b6
push dword [esi + 0x98]
mov dword [esi + 0x68], eax
lea eax, [esi + 0x90]
push eax
call fcn.00419768
push dword [esi + 0x98]
mov dword [ebp + 8], eax
lea eax, [esi + 0x90]
push eax
call fcn.00419768
mov ecx, eax
mov eax, dword [ebp - 0x54]
imul eax, ecx
add esp, 0x10
cdq
push 0x64
pop ecx
idiv ecx
lea edx, [esi + 0x90]
add eax, dword [ebp + 8]
mov ecx, eax
call fcn.004197b6
push dword [esi + 0xc8]
mov dword [esi + 0x98], eax
lea eax, [esi + 0xc0]
push eax
call fcn.00419768
push dword [esi + 0xc8]
mov dword [ebp + 8], eax
lea eax, [esi + 0xc0]
push eax
call fcn.00419768
mov ecx, eax
mov eax, dword [ebp - 0x50]
imul eax, ecx
add esp, 0x10
cdq
push 0x64
pop ecx
idiv ecx
lea edx, [esi + 0xc0]
add eax, dword [ebp + 8]
mov ecx, eax
call fcn.004197b6
push dword [esi + 0xf8]
mov dword [esi + 0xc8], eax
lea eax, [esi + 0xf0]
push eax
call fcn.00419768
push dword [esi + 0xf8]
mov dword [ebp + 8], eax
lea eax, [esi + 0xf0]
push eax
call fcn.00419768
mov ecx, eax
mov eax, dword [ebp - 0x4c]
imul eax, ecx
add esp, 0x10
cdq
push 0x64
pop ecx
idiv ecx
lea edx, [esi + 0xf0]
add eax, dword [ebp + 8]
mov ecx, eax
call fcn.004197b6
push dword [esi + 8]
mov dword [esi + 0xf8], eax
push esi
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jg 0x851714
xor eax, eax
mov ecx, 0x7cf
cmp eax, ecx
jge 0x85171f
mov ecx, eax
mov edx, esi
call fcn.004197b6
push dword [esi + 0x38]
mov dword [esi + 8], eax
push ebx
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jle 0x85173c
mov ecx, eax
jmp 0x85173e
xor ecx, ecx
mov eax, 0x7cf
cmp ecx, eax
jge 0x851749
mov eax, ecx
mov edx, ebx
mov ecx, eax
call fcn.004197b6
push dword [esi + 0x68]
mov dword [esi + 0x38], eax
push edi
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jg 0x851766
xor eax, eax
mov ebx, 0x7cf
cmp eax, ebx
mov ecx, eax
jl 0x851773
mov ecx, ebx
mov edx, edi
call fcn.004197b6
push dword [esi + 0x98]
lea edi, [esi + 0x90]
push edi
mov dword [esi + 0x68], eax
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jg 0x851797
xor eax, eax
cmp eax, ebx
mov ecx, eax
jl 0x85179f
mov ecx, ebx
mov edx, edi
call fcn.004197b6
push dword [esi + 0xc8]
lea edi, [esi + 0xc0]
push edi
mov dword [esi + 0x98], eax
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jg 0x8517c6
xor eax, eax
mov ebx, 0x3e7
cmp eax, ebx
mov ecx, eax
jl 0x8517d3
mov ecx, ebx
mov edx, edi
call fcn.004197b6
push dword [esi + 0xf8]
lea edi, [esi + 0xf0]
push edi
mov dword [esi + 0xc8], eax
call fcn.00419768
test eax, eax
pop ecx
pop ecx
jg 0x8517fa
xor eax, eax
cmp eax, ebx
mov ecx, eax
jl 0x851802
mov ecx, ebx
mov edx, edi
call fcn.004197b6
mov dword [esi + 0xf8], eax
mov eax, dword [ebp + 0x10]
push dword [eax + 0x98]
lea edi, [eax + 0x98]
lea ebx, [eax + 0x90]
push ebx
call fcn.00419768
test eax, eax
pop ecx
pop ecx
je 0x85183f
push dword [edi]
push ebx
call fcn.00419768
pop ecx
pop ecx
mov dword [ebp + 8], eax
jmp 0x851846
mov dword [ebp + 8], 0x8c
push dword [esi + 0x158]
lea edi, [esi + 0x150]
push edi
call fcn.00419768
pop ecx
pop ecx
push 0x64
pop ebx
cmp eax, ebx
jg 0x851863
mov eax, ebx
mov ecx, dword [ebp + 8]
cmp eax, ecx
jge 0x85186c
mov ecx, eax
mov edx, edi
call fcn.004197b6
push dword [esi + 0x188]
lea edi, [esi + 0x180]
push edi
mov dword [esi + 0x158], eax
call fcn.00419768
cmp eax, ebx
pop ecx
pop ecx
jg 0x851893
mov eax, ebx
cmp eax, 0x7b
jl 0x85189b
push 0x7b
pop eax
mov edx, edi
mov ecx, eax
call fcn.004197b6
mov ecx, dword [ebp - 0xc]
pop edi
mov dword [esi + 0x188], eax
pop esi
pop ebx
mov dword fs:[0], ecx
leave
ret 0x18