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

Disassembly:
push 0xffffffffffffffff
push 0x4c51a5
mov eax, dword fs:[0]
push eax
sub esp, 0x164
push ebx
push ebp
push esi
push edi
mov eax, dword [0x53856c]
xor eax, esp
push eax
lea eax, [esp + 0x178]
mov dword fs:[0], eax
mov edi, dword [esp + 0x188]
lea eax, [esp + 0xa4]
push eax
call fcn.0045ccd0
lea ecx, [esp + 0x3c]
push ecx
mov dword [esp + 0x184], 0
call fcn.0045ccd0
lea edx, [esp + 0x88]
push edx
mov byte [esp + 0x184], 1
call fcn.0045ccd0
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x184], 2
call fcn.0045ccd0
lea ecx, [esp + 0x108]
push ecx
mov byte [esp + 0x184], 3
call fcn.0045ccd0
lea edx, [esp + 0xbc]
push edx
mov byte [esp + 0x184], 4
call fcn.0045ccd0
lea eax, [esp + 0xf0]
push eax
mov byte [esp + 0x184], 5
call fcn.0045ccd0
lea ecx, [esp + 0xd8]
push ecx
mov byte [esp + 0x184], 6
call fcn.0045ccd0
mov ebx, edi
mov byte [esp + 0x180], 7
call fcn.0047f830
mov dword [esp + 0x154], eax
test eax, eax
jne 0x48096b
lea edx, [esp + 0xd8]
push edx
mov byte [esp + 0x184], 6
call fcn.00484600
lea eax, [esp + 0xf0]
push eax
mov byte [esp + 0x184], 5
call fcn.00484600
lea ecx, [esp + 0xbc]
push ecx
mov byte [esp + 0x184], 4
call fcn.00484600
lea edx, [esp + 0x108]
push edx
mov byte [esp + 0x184], 3
call fcn.00484600
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x184], 2
call fcn.00484600
lea ecx, [esp + 0x88]
push ecx
mov byte [esp + 0x184], 1
call fcn.00484600
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x184], 0
call fcn.00484600
lea eax, [esp + 0xa4]
push eax
mov dword [esp + 0x184], 0xffffffff
call fcn.00484600
xor al, al
jmp 0x480bda
mov ebx, edi
call fcn.0047ff60
mov dword [esp + 0x150], eax
lea ecx, [esp + 0xd8]
test eax, eax
jne 0x480a2d
push ecx
mov byte [esp + 0x184], 6
call fcn.00484600
lea edx, [esp + 0xf0]
push edx
mov byte [esp + 0x184], 5
call fcn.00484600
lea eax, [esp + 0xbc]
push eax
mov byte [esp + 0x184], 4
call fcn.00484600
lea ecx, [esp + 0x108]
push ecx
mov byte [esp + 0x184], 3
call fcn.00484600
lea edx, [esp + 0x68]
push edx
mov byte [esp + 0x184], 2
call fcn.00484600
lea eax, [esp + 0x88]
push eax
mov byte [esp + 0x184], 1
call fcn.00484600
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0x184], 0
call fcn.00484600
lea edx, [esp + 0xa4]
push edx
mov dword [esp + 0x184], 0xffffffff
call fcn.00484600
xor al, al
jmp 0x480bda
mov eax, dword [eax + 8]
push eax
push ecx
lea edx, [esp + 0xf8]
push edx
lea eax, [esp + 0xc8]
push eax
lea ecx, [esp + 0x118]
push ecx
lea edx, [esp + 0x7c]
push edx
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x58]
push ecx
lea edx, [esp + 0xc4]
push edx
mov esi, edi
call fcn.00480360
mov dword [esp + 0x158], eax
test eax, eax
je 0x483bb4
cmp byte [edi + 0x108], 0
je 0x483c91
mov eax, dword [edi + 0x100]
add eax, eax
add eax, eax
push eax
mov ecx, edi
call fcn.00409710
mov edx, dword [edi + 0x100]
add edx, edx
add edx, edx
push edx
xor ebx, ebx
push ebx
push eax
mov dword [esp + 0xac], eax
call fcn.004ad860
add esp, 0xc
lea eax, [esp + 0x124]
push eax
mov dword [esp + 0x68], ebx
call fcn.004552f0
lea esi, [edi + 0x18]
mov byte [esp + 0x180], 8
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
xor ebp, ebp
add ecx, edx
jne 0x480bf8
lea edx, [esp + 0x124]
push edx
mov byte [esp + 0x184], 7
call fcn.00484b40
mov eax, dword [esp + 0x154]
mov ecx, dword [esp + 0x158]
mov ebx, dword [esp + 0x150]
mov edi, dword [esp + 0x188]
push eax
mov eax, dword [esp + 0x190]
push ecx
call fcn.0047fe10
lea edx, [esp + 0xd8]
push edx
mov bl, al
mov byte [esp + 0x184], 6
call fcn.00484600
lea eax, [esp + 0xf0]
push eax
mov byte [esp + 0x184], 5
call fcn.00484600
lea ecx, [esp + 0xbc]
push ecx
mov byte [esp + 0x184], 4
call fcn.00484600
lea edx, [esp + 0x108]
push edx
mov byte [esp + 0x184], 3
call fcn.00484600
lea eax, [esp + 0x68]
push eax
mov byte [esp + 0x184], 2
call fcn.00484600
lea ecx, [esp + 0x88]
push ecx
mov byte [esp + 0x184], 1
call fcn.00484600
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x184], 0
call fcn.00484600
lea eax, [esp + 0xa4]
push eax
mov dword [esp + 0x184], 0xffffffff
call fcn.00484600
mov al, bl
mov ecx, dword [esp + 0x178]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x170
ret 8
xor ebx, ebx
mov ecx, dword [edi + 0x40]
sub ecx, dword [edi + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x480c18
call fcn.004ac063
mov ecx, dword [edi + 0x3c]
mov eax, ebp
imul eax, eax, 0x2c
mov dword [esp + 0x54], eax
cmp dword [ecx + eax + 0x1c], ebp
jne 0x480c69
mov edx, dword [esp + 0x13c]
mov eax, dword [edx + 4]
push eax
lea ecx, [esp + 0x128]
call fcn.00457310
mov eax, dword [esp + 0x13c]
mov dword [eax + 4], eax
mov eax, dword [esp + 0x13c]
mov dword [esp + 0x140], ebx
mov dword [eax], eax
mov eax, dword [esp + 0x13c]
mov dword [eax + 8], eax
mov dword [esp + 0x64], ebx
lea ebx, [ebp + ebp*2]
add ebx, ebx
xor eax, eax
add ebx, ebx
add ebx, ebx
mov dword [esp + 0x14c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], ebx
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebp, ecx
jb 0x480ca4
call fcn.004ac063
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + ebx + 0x10]
sub ecx, dword [eax + ebx + 0xc]
add eax, ebx
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jae 0x483b7a
mov eax, dword [esp + 0xb4]
mov ecx, eax
sub ecx, dword [esp + 0xb0]
sar ecx, 2
cmp ebp, ecx
jb 0x480cef
call fcn.004ac063
mov eax, dword [esp + 0xb4]
mov ecx, dword [esp + 0x118]
sub ecx, dword [esp + 0x114]
mov edx, dword [esp + 0xb0]
sar ecx, 2
lea ebx, [edx + ebp*4]
cmp ebp, ecx
jb 0x480d1a
call fcn.004ac063
mov eax, dword [esp + 0xb4]
mov edx, dword [ebx]
mov ecx, dword [esp + 0x114]
add edx, 4
cmp edx, dword [ecx + ebp*4]
jae 0x483b9f
sub eax, dword [esp + 0xb0]
sar eax, 2
cmp ebp, eax
jb 0x480d42
call fcn.004ac063
mov edx, dword [esp + 0xb0]
mov eax, dword [edx + ebp*4]
mov ecx, dword [esp + 0x14c]
mov dword [eax], ecx
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x480d75
call fcn.004ac063
mov ebx, dword [esi + 0xc]
add ebx, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x480d9e
call fcn.004ac063
mov eax, dword [esp + 0x18]
lea ecx, [eax + eax*2]
mov eax, dword [ebx + 0xc]
add ecx, ecx
add ecx, ecx
add ecx, ecx
add eax, ecx
mov dword [esp + 0x30], ecx
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov eax, 0x66666667
imul ecx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov edx, dword [esp + 0xb4]
sub edx, dword [esp + 0xb0]
sar edx, 2
cmp ebp, edx
jb 0x480de5
call fcn.004ac063
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + ebp*4]
mov dword [ecx + 4], ebx
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
sub edx, eax
sar edx, 2
cmp ebp, edx
jb 0x480e15
call fcn.004ac063
mov eax, dword [esp + 0xb0]
add dword [eax + ebp*4], 8
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x480e39
call fcn.004ac063
mov ebx, dword [esi + 0xc]
add ebx, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x480e62
call fcn.004ac063
mov eax, dword [ebx + 0xc]
add eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov eax, 0x66666667
imul ecx
sar edx, 5
mov ebx, edx
shr ebx, 0x1f
add ebx, edx
mov edx, dword [edi + 0xa0]
sub edx, dword [edi + 0x9c]
sar edx, 2
cmp ebp, edx
jb 0x480e98
call fcn.004ac063
mov eax, dword [edi + 0x9c]
mov ecx, dword [eax + ebp*4]
imul ecx, ebx
add dword [esp + 0x14c], ecx
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x480ecb
call fcn.004ac063
mov ebx, dword [esi + 0xc]
add ebx, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x480ef4
call fcn.004ac063
mov eax, dword [ebx + 0xc]
add eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov eax, 0x66666667
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
call fcn.004aada2
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov dword [esp + 0x14c], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
add esp, 4
cmp ebp, eax
jb 0x480f42
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x480f6b
call fcn.004ac063
mov eax, dword [esi + 0xc]
add eax, dword [esp + 0x30]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov eax, 0x66666667
imul ecx
mov ecx, dword [esp + 0x148]
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push 0
push ecx
call fcn.004ad860
add esp, 0xc
mov dword [esp + 0x1c], 0
mov ecx, dword [edi + 0x28]
sub ecx, dword [edi + 0x24]
lea esi, [edi + 0x18]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x480fc7
call fcn.004ac063
mov ebx, dword [esi + 0xc]
add ebx, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x480ff0
call fcn.004ac063
mov ebx, dword [ebx + 0xc]
add ebx, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jae 0x483b5d
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebp, ecx
jb 0x481038
call fcn.004ac063
mov ebx, dword [esi + 0xc]
add ebx, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jb 0x481061
call fcn.004ac063
mov ebx, dword [ebx + 0xc]
add ebx, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x48108a
call fcn.004ac063
mov eax, dword [esp + 0x1c]
mov edx, dword [ebx + 0xc]
lea eax, [eax + eax*4]
shl eax, 4
cmp dword [edx + eax + 4], 0
mov dword [esp + 0x58], eax
je 0x481311
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x4810c6
call fcn.004ac063
mov ebx, dword [esi + 0xc]
add ebx, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x4810ef
call fcn.004ac063
mov ebx, dword [ebx + 0xc]
add ebx, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jb 0x481118
call fcn.004ac063
mov ecx, dword [ebx + 0xc]
mov edx, dword [esp + 0x58]
cmp dword [ecx + edx + 4], 0xa
je 0x481311
mov ecx, dword [edi + 0x40]
sub ecx, dword [edi + 0x3c]
lea ebx, [edi + 0x30]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x48114d
call fcn.004ac063
mov ecx, dword [ebx + 0xc]
mov edx, dword [esp + 0x54]
mov eax, dword [edx + ecx]
and eax, 0xffffff8f
cmp eax, 4
je 0x481a0a
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebp, ecx
jb 0x481183
call fcn.004ac063
mov edx, dword [ebx + 0xc]
mov eax, dword [esp + 0x54]
cmp dword [edx + eax + 0x20], 0
jge 0x483b9f
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebp, ecx
jb 0x4811b5
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jb 0x4811de
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x481207
call fcn.004ac063
mov edx, dword [esi + 0xc]
mov eax, dword [esp + 0x58]
cmp dword [eax + edx + 4], 0xb
je 0x483b9f
mov eax, dword [esp + 0x4c]
mov ecx, eax
sub ecx, dword [esp + 0x48]
sar ecx, 2
cmp ebp, ecx
jb 0x481233
call fcn.004ac063
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xcc]
sub ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x48]
sar ecx, 2
lea esi, [edx + ebp*4]
cmp ebp, ecx
jb 0x481258
call fcn.004ac063
mov eax, dword [esp + 0x4c]
mov edx, dword [esi]
mov ecx, dword [esp + 0xc8]
cmp edx, dword [ecx + ebp*4]
jae 0x483b9f
sub eax, dword [esp + 0x48]
sar eax, 2
cmp ebp, eax
jb 0x48127a
call fcn.004ac063
mov edx, dword [esp + 0x48]
mov ebx, dword [esp + 0x188]
lea eax, [edx + ebp*4]
add ebx, 0x18
mov edi, ebp
mov esi, ebx
mov dword [esp + 0x5c], eax
call fcn.00484890
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.00484890
mov edi, dword [esp + 0x1c]
mov esi, eax
call fcn.00484690
mov edi, ebp
mov esi, ebx
mov dword [esp + 0x2c], eax
call fcn.00484890
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.00484890
mov edi, dword [esp + 0x1c]
mov esi, eax
call fcn.00484690
mov ecx, dword [esp + 0x188]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
push ecx
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx]
call fcn.0047f680
mov edx, dword [esp + 0x4c]
mov esi, eax
mov eax, dword [esp + 0x48]
sub edx, eax
sar edx, 2
cmp ebp, edx
jb 0x481309
call fcn.004ac063
mov eax, dword [esp + 0x48]
add dword [eax + ebp*4], esi
jmp 0x481a03
mov ecx, dword [edi + 0x40]
sub ecx, dword [edi + 0x3c]
lea esi, [edi + 0x30]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x481334
call fcn.004ac063
mov ecx, dword [esi + 0xc]
mov ebx, dword [esp + 0x54]
cmp dword [ecx + ebx + 0x20], 0
jl 0x483c60
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x481366
call fcn.004ac063
mov ecx, dword [esi + 0xc]
mov edx, dword [ecx + ebx + 0x20]
cmp edx, dword [edi + 0x100]
jge 0x483c60
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x481399
call fcn.004ac063
mov ecx, dword [esp + 0x78]
sub ecx, dword [esp + 0x74]
mov edx, dword [esi + 0xc]
sar ecx, 2
cmp dword [edx + ebx + 0x20], ecx
jae 0x483c60
mov ecx, dword [esp + 0x4c]
mov eax, ecx
sub eax, dword [esp + 0x48]
sar eax, 2
cmp ebp, eax
jb 0x4813cb
call fcn.004ac063
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0xcc]
sub eax, dword [esp + 0xc8]
mov edx, dword [esp + 0x48]
sar eax, 2
lea ebx, [edx + ebp*4]
cmp ebp, eax
jb 0x4813f0
call fcn.004ac063
mov ecx, dword [esp + 0x4c]
mov edx, dword [ebx]
mov eax, dword [esp + 0xc8]
cmp edx, dword [eax + ebp*4]
jae 0x483b9f
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0xc]
mov eax, 0x2e8ba2e9
imul edx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x481426
call fcn.004ac063
mov ecx, dword [esp + 0x4c]
sub ecx, dword [esp + 0x48]
mov ebx, dword [esi + 0xc]
mov edi, dword [esp + 0x54]
sar ecx, 2
add ebx, edi
cmp ebp, ecx
jb 0x48143f
call fcn.004ac063
mov edx, dword [esp + 0x48]
mov eax, dword [edx + ebp*4]
mov ecx, dword [ebx + 0x20]
mov edx, dword [esp + 0xa0]
mov ecx, dword [edx + ecx*4]
mov dword [eax], ecx
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
sub edx, eax
sar edx, 2
cmp ebp, edx
jb 0x48146f
call fcn.004ac063
mov eax, dword [esp + 0x48]
add dword [eax + ebp*4], 4
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x481493
call fcn.004ac063
mov ecx, dword [esp + 0x78]
mov eax, dword [esi + 0xc]
sub ecx, dword [esp + 0x74]
mov ebx, dword [eax + edi + 0x20]
add eax, edi
sar ecx, 2
cmp ebx, ecx
jb 0x4814b0
call fcn.004ac063
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x74]
sub ecx, dword [esi + 0xc]
lea ebx, [edx + ebx*4]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x4814d7
call fcn.004ac063
mov esi, dword [esi + 0xc]
mov ecx, dword [esp + 0xe8]
sub ecx, dword [esp + 0xe4]
add esi, edi
mov esi, dword [esi + 0x20]
sar ecx, 2
cmp esi, ecx
jb 0x4814f9
call fcn.004ac063
mov edx, dword [ebx]
mov eax, dword [esp + 0xe4]
cmp edx, dword [eax + esi*4]
jae 0x483b9f
mov esi, dword [esp + 0x188]
add esi, 0x30
mov edi, ebp
mov dword [esp + 0x24], esi
call fcn.004845d0
mov ecx, dword [esp + 0x78]
sub ecx, dword [esp + 0x74]
mov esi, dword [eax + 0x20]
sar ecx, 2
cmp esi, ecx
jb 0x481537
call fcn.004ac063
mov edx, dword [esp + 0x74]
mov ebx, dword [esp + 0x188]
lea eax, [edx + esi*4]
add ebx, 0x18
mov edi, ebp
mov esi, ebx
mov dword [esp + 0x5c], eax
call fcn.00484890
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.00484890
mov edi, dword [esp + 0x1c]
mov esi, eax
call fcn.00484690
mov edi, ebp
mov esi, ebx
mov dword [esp + 0x2c], eax
call fcn.00484890
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.00484890
mov edi, dword [esp + 0x1c]
mov esi, eax
call fcn.00484690
mov ecx, dword [esp + 0x188]
mov edx, dword [eax + 4]
mov eax, dword [esp + 0x2c]
mov eax, dword [eax]
push ecx
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx]
call fcn.0047f680
mov esi, dword [esp + 0x24]
mov edi, ebp
mov dword [esp + 0xd4], eax
call fcn.004845d0
mov edx, dword [eax]
shr edx, 4
test dl, 1
je 0x481979
mov eax, dword [esp + 0x1c]
inc eax
mov esi, ebx
mov dword [esp + 0x38], 0
mov byte [esp + 0x83], 0
mov dword [esp + 0x34], eax
call fcn.00484890
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.00484890
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov eax, 0x66666667
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x34], ecx
jae 0x4818bc
mov eax, dword [esp + 0x34]
lea eax, [eax + eax*4]
shl eax, 4
mov dword [esp + 0x60], eax
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x481644
call fcn.004ac063
mov ebx, dword [ebx + 0xc]
add ebx, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x48166d
call fcn.004ac063
mov ebx, dword [ebx + 0xc]
add ebx, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x34], eax
jb 0x481696
call fcn.004ac063
mov edx, dword [esp + 0x60]
mov ecx, dword [ebx + 0xc]
mov eax, dword [ecx + edx]
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x4816a3
mov edi, dword [esp + 0x188]
sub eax, edx
sar eax, 1
lea eax, [eax + eax + 6]
push eax
mov ecx, edi
call fcn.00409710
mov ecx, dword [edi + 0x28]
sub ecx, dword [edi + 0x24]
lea ebx, [edi + 0x18]
mov dword [esp + 0x5c], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebp, ecx
jb 0x4816ec
call fcn.004ac063
mov esi, dword [ebx + 0xc]
add esi, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jb 0x481715
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x34], ecx
jb 0x48173e
call fcn.004ac063
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x60]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
mov dword [esp + 0x2c], esi
cmp ebp, eax
jb 0x481769
call fcn.004ac063
mov esi, dword [ebx + 0xc]
add esi, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x481792
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x34], eax
jb 0x4817bb
call fcn.004ac063
mov esi, dword [esi + 0xc]
mov ecx, dword [esp + 0x2c]
add esi, dword [esp + 0x60]
mov edx, dword [ecx + 4]
mov eax, dword [esi]
mov ecx, dword [esp + 0x5c]
push edi
call fcn.0047f680
mov edx, dword [edi + 0x13c]
sub edx, dword [edi + 0x138]
sar edx, 2
cmp ebp, edx
jae 0x483b9f
mov eax, dword [edi + 0x13c]
sub eax, dword [edi + 0x138]
sar eax, 2
cmp ebp, eax
jb 0x481804
call fcn.004ac063
mov eax, edi
mov ecx, dword [eax + 0x138]
mov edx, dword [ecx + ebp*4]
lea esi, [eax + 0x30]
mov edi, ebp
mov dword [esp + 0x2c], edx
mov dword [esp + 0x24], esi
call fcn.004845d0
mov esi, dword [eax + 0x20]
mov eax, dword [esp + 0x78]
sub eax, dword [esp + 0x74]
sar eax, 2
cmp esi, eax
jb 0x481838
call fcn.004ac063
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx]
mov edx, dword [edx]
push eax
mov eax, dword [esp + 0x78]
mov eax, dword [eax + esi*4]
push eax
call edx
cmp eax, 0xffffffff
jne 0x48189d
add dword [esp + 0x60], 0x50
mov eax, 1
add dword [esp + 0x38], eax
add dword [esp + 0x34], eax
mov edi, ebp
mov esi, ebx
call fcn.00484890
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.00484890
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov eax, 0x66666667
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x34], eax
jb 0x481624
jmp 0x4818bc
mov eax, dword [esp + 0x148]
mov ecx, dword [esp + 0x34]
cmp byte [ecx + eax], 0
jne 0x4818bc
mov edx, ecx
mov byte [esp + 0x83], 1
mov byte [edx + eax], 1
mov eax, dword [esp + 0x4c]
mov ecx, eax
sub ecx, dword [esp + 0x48]
sar ecx, 2
cmp ebp, ecx
jb 0x4818d6
call fcn.004ac063
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0xcc]
sub ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x48]
sar ecx, 2
lea esi, [edx + ebp*4]
cmp ebp, ecx
jb 0x4818fb
call fcn.004ac063
mov eax, dword [esp + 0x4c]
mov edx, dword [esi]
mov ecx, dword [esp + 0xc8]
cmp edx, dword [ecx + ebp*4]
jae 0x483b9f
cmp byte [esp + 0x83], 0
je 0x481937
sub eax, dword [esp + 0x48]
sar eax, 2
cmp ebp, eax
jb 0x481927
call fcn.004ac063
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x38]
mov ecx, dword [eax + ebp*4]
inc edx
mov dword [ecx], edx
jmp 0x48195b
mov edi, ebp
lea esi, [esp + 0x3c]
call fcn.00423a30
cmp dword [esp + 0x38], 0
jle 0x481953
mov edx, dword [eax]
mov dword [edx], 0
jmp 0x48195b
mov eax, dword [eax]
mov dword [eax], 0xffffffff
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
sub ecx, eax
sar ecx, 2
cmp ebp, ecx
jb 0x481975
call fcn.004ac063
mov eax, dword [esp + 0x48]
add dword [eax + ebp*4], 4
mov esi, dword [esp + 0x24]
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x48199d
call fcn.004ac063
mov eax, dword [esi + 0xc]
add eax, dword [esp + 0x54]
mov ecx, dword [esp + 0x78]
mov ebx, dword [eax + 0x20]
mov eax, dword [esp + 0x74]
sub ecx, eax
sar ecx, 2
cmp ebx, ecx
jb 0x4819c1
call fcn.004ac063
mov eax, dword [esp + 0x74]
mov edi, dword [esp + 0xd4]
add dword [eax + ebx*4], edi
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x4819eb
call fcn.004ac063
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x54]
mov eax, dword [ecx + edx + 0x20]
mov ecx, dword [esp + 0xa0]
add dword [ecx + eax*4], edi
lea eax, [ecx + eax*4]
mov edi, dword [esp + 0x188]
mov ecx, dword [edi + 0x40]
sub ecx, dword [edi + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x481a2a
call fcn.004ac063
mov ecx, dword [edi + 0x3c]
mov edx, dword [esp + 0x54]
xor eax, eax
cmp dword [ecx + edx + 0x1c], eax
mov dword [esp + 0x20], eax
jge 0x482080
mov ecx, dword [edi + 0x28]
sub ecx, dword [edi + 0x24]
lea esi, [edi + 0x18]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x481a64
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x481a8d
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jb 0x481ab6
call fcn.004ac063
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x58]
lea eax, [edx + ecx + 8]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
sar ecx, 2
cmp dword [esp + 0x20], ecx
jae 0x483b4d
mov edx, dword [esp + 0x4c]
sub edx, dword [esp + 0x48]
sar edx, 2
cmp ebp, edx
jb 0x481ae8
call fcn.004ac063
mov ecx, dword [esp + 0xcc]
sub ecx, dword [esp + 0xc8]
mov eax, dword [esp + 0x48]
sar ecx, 2
lea esi, [eax + ebp*4]
cmp ebp, ecx
jb 0x481b09
call fcn.004ac063
mov edx, dword [esi]
mov eax, dword [esp + 0xc8]
cmp edx, dword [eax + ebp*4]
jae 0x483b9f
mov esi, dword [esp + 0x188]
mov ecx, dword [esi + 0x28]
sub ecx, dword [esi + 0x24]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebp, ecx
jb 0x481b42
call fcn.004ac063
mov esi, dword [esi + 0x24]
add esi, dword [esp + 0x28]
mov edi, dword [esp + 0x18]
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x481b6d
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x30]
mov ebx, dword [esp + 0x1c]
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x66666667
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebx, ecx
jb 0x481b98
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x58]
mov edx, dword [esi + 0x48]
sub edx, dword [esi + 0x44]
sar edx, 2
cmp dword [esp + 0x20], edx
jb 0x481bb3
call fcn.004ac063
mov eax, dword [esi + 0x44]
mov ecx, dword [esp + 0x20]
cmp dword [eax + ecx*4], 0
je 0x481e07
mov eax, dword [esp + 0x188]
mov ecx, dword [eax + 0x28]
sub ecx, dword [eax + 0x24]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x481beb
call fcn.004ac063
mov ecx, dword [esp + 0x188]
mov esi, dword [ecx + 0x24]
add esi, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x481c19
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebx, ecx
jb 0x481c40
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x58]
mov edx, dword [esi + 0x48]
sub edx, dword [esi + 0x44]
sar edx, 2
cmp dword [esp + 0x20], edx
jb 0x481c5b
call fcn.004ac063
mov eax, dword [esi + 0x44]
mov ecx, dword [esp + 0x20]
cmp dword [eax + ecx*4], 0xa
je 0x481e07
mov eax, dword [esp + 0x188]
mov ecx, dword [eax + 0x28]
sub ecx, dword [eax + 0x24]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x481c93
call fcn.004ac063
mov ecx, dword [esp + 0x188]
mov esi, dword [ecx + 0x24]
add esi, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x481cc1
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebx, ecx
jb 0x481ce8
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x58]
mov edi, dword [esp + 0x20]
mov edx, dword [esi + 0x48]
sub edx, dword [esi + 0x44]
sar edx, 2
cmp edi, edx
jb 0x481d05
call fcn.004ac063
mov eax, dword [esi + 0x44]
cmp dword [eax + edi*4], 0xb
je 0x481e07
mov esi, dword [esp + 0x188]
mov edi, ebp
add esi, 0x18
call fcn.00484890
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.00484890
mov edi, dword [esp + 0x1c]
mov esi, eax
call fcn.00484690
mov esi, eax
mov ecx, dword [esi + 0x48]
sub ecx, dword [esi + 0x44]
add esi, 0x38
sar ecx, 2
cmp dword [esp + 0x20], ecx
jb 0x481d52
call fcn.004ac063
mov ebx, dword [esi + 0xc]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x188]
add eax, eax
add eax, eax
mov edi, ebp
add esi, 0x18
add ebx, eax
call fcn.00484890
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.00484890
mov edi, dword [esp + 0x1c]
mov esi, eax
call fcn.00484690
mov esi, eax
mov edx, dword [esi + 0x18]
sub edx, dword [esi + 0x14]
add esi, 8
sar edx, 2
cmp dword [esp + 0x20], edx
jb 0x481d9f
call fcn.004ac063
mov eax, dword [esp + 0x20]
mov esi, dword [esi + 0xc]
add eax, eax
add eax, eax
add esi, eax
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
sar eax, 2
cmp ebp, eax
jb 0x481dc0
call fcn.004ac063
mov ecx, dword [esp + 0x188]
mov edx, dword [ebx]
mov eax, dword [esi]
push ecx
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx + ebp*4]
call fcn.0047f680
mov edx, dword [esp + 0x4c]
mov esi, eax
mov eax, dword [esp + 0x48]
sub edx, eax
sar edx, 2
cmp ebp, edx
jb 0x481df4
call fcn.004ac063
mov eax, dword [esp + 0x48]
add dword [eax + ebp*4], esi
inc dword [esp + 0x20]
mov edi, dword [esp + 0x188]
jmp 0x481a41
mov edi, dword [esp + 0x188]
mov ecx, dword [edi + 0x40]
sub ecx, dword [edi + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x481e2e
call fcn.004ac063
mov ecx, dword [edi + 0x3c]
mov esi, dword [esp + 0x54]
cmp dword [esi + ecx + 0x24], 0
jl 0x483b9f
mov ecx, dword [edi + 0x40]
sub ecx, dword [edi + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x481e60
call fcn.004ac063
mov ecx, dword [esp + 0x78]
sub ecx, dword [esp + 0x74]
mov edx, dword [edi + 0x3c]
sar ecx, 2
cmp dword [edx + esi + 0x24], ecx
jae 0x483b9f
mov ecx, dword [edi + 0x40]
sub ecx, edx
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x481e97
call fcn.004ac063
mov ecx, dword [edi + 0x3c]
mov edx, dword [esi + ecx + 0x24]
cmp edx, dword [edi + 0x100]
jge 0x483b9f
mov esi, dword [esp + 0x188]
add esi, 0x30
mov edi, ebp
mov dword [esp + 0x24], esi
call fcn.004845d0
mov edi, dword [eax + 0x24]
mov eax, dword [esp + 0x78]
sub eax, dword [esp + 0x74]
sar eax, 2
cmp edi, eax
jb 0x481ed6
call fcn.004ac063
mov ecx, dword [esp + 0x74]
lea ebx, [ecx + edi*4]
mov edi, ebp
call fcn.004845d0
mov edx, dword [esp + 0xe8]
sub edx, dword [esp + 0xe4]
mov edi, dword [eax + 0x24]
sar edx, 2
cmp edi, edx
jb 0x481f01
call fcn.004ac063
mov eax, dword [ebx]
mov ecx, dword [esp + 0xe4]
cmp eax, dword [ecx + edi*4]
jae 0x483b9f
mov edi, ebp
call fcn.004845d0
mov edx, dword [esp + 0x78]
sub edx, dword [esp + 0x74]
mov esi, dword [eax + 0x24]
sar edx, 2
cmp esi, edx
jb 0x481f31
call fcn.004ac063
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x188]
lea ecx, [eax + esi*4]
add ebx, 0x18
mov edi, ebp
mov esi, ebx
mov dword [esp + 0x5c], ecx
call fcn.00484890
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.00484890
mov edi, dword [esp + 0x1c]
mov esi, eax
call fcn.00484690
mov edi, dword [esp + 0x20]
mov esi, eax
add esi, 0x38
call fcn.00423a30
mov edi, ebp
mov esi, ebx
mov dword [esp + 0x2c], eax
call fcn.00484890
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.00484890
mov edi, dword [esp + 0x1c]
mov esi, eax
call fcn.00484690
mov edi, dword [esp + 0x20]
mov esi, eax
add esi, 8
call fcn.00423a30
mov edx, dword [esp + 0x188]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax]
push edx
mov edx, dword [ecx]
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx]
call fcn.0047f680
mov ebx, eax
mov edi, ebp
test ebx, ebx
jle 0x481ff6
mov esi, dword [esp + 0x24]
call fcn.004845d0
mov edx, dword [eax + 0x24]
mov eax, dword [esp + 0xa0]
lea ecx, [eax + edx*4]
lea esi, [esp + 0x3c]
mov dword [esp + 0x2c], ecx
call fcn.00423a30
mov edx, dword [eax]
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
mov dword [edx], ecx
jmp 0x482007
lea esi, [esp + 0x3c]
call fcn.00423a30
mov edx, dword [eax]
mov dword [edx], 0xffffffff
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
sub ecx, eax
sar ecx, 2
cmp ebp, ecx
jb 0x482021
call fcn.004ac063
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x24]
add dword [eax + ebp*4], 4
mov edi, ebp
call fcn.004845d0
mov esi, dword [eax + 0x24]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
sub edx, eax
sar edx, 2
cmp esi, edx
jb 0x48204d
call fcn.004ac063
mov eax, dword [esp + 0x74]
add dword [eax + esi*4], ebx
mov esi, dword [esp + 0x24]
mov edi, ebp
call fcn.004845d0
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0xa0]
add dword [ecx + eax*4], ebx
inc dword [esp + 0x20]
mov edi, dword [esp + 0x188]
lea eax, [ecx + eax*4]
jmp 0x481a41
mov ecx, dword [edi + 0x28]
sub ecx, dword [edi + 0x24]
lea esi, [edi + 0x18]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x4820a3
call fcn.004ac063
mov ebx, dword [esi + 0xc]
add ebx, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x4820cc
call fcn.004ac063
mov ebx, dword [ebx + 0xc]
add ebx, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jb 0x4820f5
call fcn.004ac063
mov ecx, dword [ebx + 0xc]
mov edx, dword [esp + 0x58]
lea eax, [edx + ecx + 8]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
sar ecx, 2
cmp dword [esp + 0x20], ecx
jae 0x482699
mov edx, dword [esp + 0x4c]
sub edx, dword [esp + 0x48]
sar edx, 2
cmp ebp, edx
jb 0x482127
call fcn.004ac063
mov ecx, dword [esp + 0xcc]
sub ecx, dword [esp + 0xc8]
mov eax, dword [esp + 0x48]
sar ecx, 2
lea ebx, [eax + ebp*4]
cmp ebp, ecx
jb 0x482148
call fcn.004ac063
mov edx, dword [ebx]
mov eax, dword [esp + 0xc8]
cmp edx, dword [eax + ebp*4]
jae 0x483b9f
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebp, ecx
jb 0x48217a
call fcn.004ac063
mov ebx, dword [esi + 0xc]
add ebx, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jb 0x4821a3
call fcn.004ac063
mov ebx, dword [ebx + 0xc]
add ebx, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x4821cc
call fcn.004ac063
mov ebx, dword [ebx + 0xc]
add ebx, dword [esp + 0x58]
mov edx, dword [ebx + 0x48]
sub edx, dword [ebx + 0x44]
sar edx, 2
cmp dword [esp + 0x20], edx
jb 0x4821e7
call fcn.004ac063
mov edi, dword [esp + 0x20]
mov eax, dword [ebx + 0x44]
add edi, edi
add edi, edi
cmp dword [edi + eax], 0
je 0x482425
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebp, ecx
jb 0x48221c
call fcn.004ac063
mov ebx, dword [esi + 0xc]
add ebx, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jb 0x482245
call fcn.004ac063
mov ebx, dword [ebx + 0xc]
add ebx, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x48226e
call fcn.004ac063
mov ebx, dword [ebx + 0xc]
add ebx, dword [esp + 0x58]
mov edx, dword [ebx + 0x48]
sub edx, dword [ebx + 0x44]
sar edx, 2
cmp dword [esp + 0x20], edx
jb 0x482289
call fcn.004ac063
mov eax, dword [ebx + 0x44]
cmp dword [edi + eax], 0xa
je 0x482425
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebp, ecx
jb 0x4822b6
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jb 0x4822df
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x482308
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x58]
mov edx, dword [esi + 0x48]
sub edx, dword [esi + 0x44]
sar edx, 2
cmp dword [esp + 0x20], edx
jb 0x482323
call fcn.004ac063
mov eax, dword [esi + 0x44]
cmp dword [edi + eax], 0xb
je 0x482425
mov esi, dword [esp + 0x188]
mov edi, ebp
add esi, 0x18
call fcn.00484890
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.00484890
mov edi, dword [esp + 0x1c]
mov esi, eax
call fcn.00484690
mov esi, eax
mov ecx, dword [esi + 0x48]
sub ecx, dword [esi + 0x44]
add esi, 0x38
sar ecx, 2
cmp dword [esp + 0x20], ecx
jb 0x482370
call fcn.004ac063
mov ebx, dword [esi + 0xc]
mov eax, dword [esp + 0x20]
mov esi, dword [esp + 0x188]
add eax, eax
add eax, eax
mov edi, ebp
add esi, 0x18
add ebx, eax
call fcn.00484890
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.00484890
mov edi, dword [esp + 0x1c]
mov esi, eax
call fcn.00484690
mov esi, eax
mov edx, dword [esi + 0x18]
sub edx, dword [esi + 0x14]
add esi, 8
sar edx, 2
cmp dword [esp + 0x20], edx
jb 0x4823bd
call fcn.004ac063
mov eax, dword [esp + 0x20]
mov esi, dword [esi + 0xc]
add eax, eax
add eax, eax
add esi, eax
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
sar eax, 2
cmp ebp, eax
jb 0x4823de
call fcn.004ac063
mov ecx, dword [esp + 0x188]
mov edx, dword [ebx]
mov eax, dword [esi]
push ecx
mov ecx, dword [esp + 0x4c]
mov ecx, dword [ecx + ebp*4]
call fcn.0047f680
mov edx, dword [esp + 0x4c]
mov esi, eax
mov eax, dword [esp + 0x48]
sub edx, eax
sar edx, 2
cmp ebp, edx
jb 0x482412
call fcn.004ac063
mov eax, dword [esp + 0x48]
add dword [eax + ebp*4], esi
inc dword [esp + 0x20]
mov edi, dword [esp + 0x188]
jmp 0x482080
mov edi, dword [esp + 0x188]
mov ecx, dword [edi + 0x40]
sub ecx, dword [edi + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x48244c
call fcn.004ac063
mov ecx, dword [edi + 0x3c]
mov esi, dword [esp + 0x54]
cmp dword [ecx + esi + 0x24], 0
jl 0x483b9f
mov ecx, dword [edi + 0x40]
sub ecx, dword [edi + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x48247e
call fcn.004ac063
mov ecx, dword [esp + 0x78]
sub ecx, dword [esp + 0x74]
mov edx, dword [edi + 0x3c]
sar ecx, 2
cmp dword [edx + esi + 0x24], ecx
jae 0x483b9f
mov ecx, dword [edi + 0x40]
sub ecx, edx
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x4824b5
call fcn.004ac063
mov ecx, dword [edi + 0x3c]
mov edx, dword [ecx + esi + 0x24]
cmp edx, dword [edi + 0x100]
jge 0x483b9f
mov esi, dword [esp + 0x188]
add esi, 0x30
mov edi, ebp
mov dword [esp + 0x24], esi
call fcn.004845d0
mov edi, dword [eax + 0x24]
mov eax, dword [esp + 0x78]
sub eax, dword [esp + 0x74]
sar eax, 2
cmp edi, eax
jb 0x4824f4
call fcn.004ac063
mov ecx, dword [esp + 0x74]
lea ebx, [ecx + edi*4]
mov edi, ebp
call fcn.004845d0
mov edx, dword [esp + 0xe8]
sub edx, dword [esp + 0xe4]
mov edi, dword [eax + 0x24]
sar edx, 2
cmp edi, edx
jb 0x48251f
call fcn.004ac063
mov eax, dword [ebx]
mov ecx, dword [esp + 0xe4]
cmp eax, dword [ecx + edi*4]
jae 0x483b9f
mov edi, ebp
call fcn.004845d0
mov edx, dword [esp + 0x78]
sub edx, dword [esp + 0x74]
mov esi, dword [eax + 0x24]
sar edx, 2
cmp esi, edx
jb 0x48254f
call fcn.004ac063
mov eax, dword [esp + 0x74]
mov ebx, dword [esp + 0x188]
lea ecx, [eax + esi*4]
add ebx, 0x18
mov edi, ebp
mov esi, ebx
mov dword [esp + 0x5c], ecx
call fcn.00484890
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.00484890
mov edi, dword [esp + 0x1c]
mov esi, eax
call fcn.00484690
mov edi, dword [esp + 0x20]
mov esi, eax
add esi, 0x38
call fcn.00423a30
mov edi, ebp
mov esi, ebx
mov dword [esp + 0x2c], eax
call fcn.00484890
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.00484890
mov edi, dword [esp + 0x1c]
mov esi, eax
call fcn.00484690
mov edi, dword [esp + 0x20]
mov esi, eax
add esi, 8
call fcn.00423a30
mov edx, dword [esp + 0x188]
mov ecx, dword [esp + 0x2c]
mov eax, dword [eax]
push edx
mov edx, dword [ecx]
mov ecx, dword [esp + 0x60]
mov ecx, dword [ecx]
call fcn.0047f680
mov ebx, eax
mov edi, ebp
test ebx, ebx
jle 0x482614
mov esi, dword [esp + 0x24]
call fcn.004845d0
mov edx, dword [eax + 0x24]
mov eax, dword [esp + 0xa0]
lea ecx, [eax + edx*4]
lea esi, [esp + 0x3c]
mov dword [esp + 0x2c], ecx
call fcn.00423a30
mov edx, dword [eax]
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax]
mov dword [edx], ecx
jmp 0x482625
lea esi, [esp + 0x3c]
call fcn.00423a30
mov edx, dword [eax]
mov dword [edx], 0xffffffff
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
sub ecx, eax
sar ecx, 2
cmp ebp, ecx
jb 0x48263f
call fcn.004ac063
mov eax, dword [esp + 0x48]
mov esi, dword [esp + 0x24]
add dword [eax + ebp*4], 4
mov edi, ebp
call fcn.004845d0
mov esi, dword [eax + 0x24]
mov edx, dword [esp + 0x78]
mov eax, dword [esp + 0x74]
sub edx, eax
sar edx, 2
cmp esi, edx
jb 0x48266b
call fcn.004ac063
mov eax, dword [esp + 0x74]
add dword [eax + esi*4], ebx
mov esi, dword [esp + 0x24]
mov edi, ebp
call fcn.004845d0
mov eax, dword [eax + 0x24]
mov ecx, dword [esp + 0xa0]
add dword [ecx + eax*4], ebx
inc dword [esp + 0x20]
mov edi, dword [esp + 0x188]
lea eax, [ecx + eax*4]
jmp 0x482080
mov ecx, dword [edi + 0x40]
sub ecx, dword [edi + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x4826b9
call fcn.004ac063
mov ecx, dword [edi + 0x3c]
mov ebx, dword [esp + 0x54]
mov edx, dword [ebx + ecx]
shr edx, 5
test dl, 1
jne 0x4826fd
mov ecx, dword [edi + 0x40]
sub ecx, dword [edi + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x4826eb
call fcn.004ac063
mov ecx, dword [edi + 0x3c]
mov edx, dword [ebx + ecx]
shr edx, 6
test dl, 1
je 0x48280f
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
sar eax, 2
cmp ebp, eax
jb 0x482711
call fcn.004ac063
mov edx, dword [esp + 0xcc]
sub edx, dword [esp + 0xc8]
mov ecx, dword [esp + 0x48]
sar edx, 2
lea ebx, [ecx + ebp*4]
cmp ebp, edx
jb 0x482732
call fcn.004ac063
mov eax, dword [ebx]
mov ecx, dword [esp + 0xc8]
cmp eax, dword [ecx + ebp*4]
jae 0x483b9f
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x482764
call fcn.004ac063
mov ebx, dword [esi + 0xc]
add ebx, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x48278d
call fcn.004ac063
mov ebx, dword [ebx + 0xc]
add ebx, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jb 0x4827b6
call fcn.004ac063
mov eax, dword [ebx + 0xc]
add eax, dword [esp + 0x58]
mov ecx, dword [eax + 0x30]
sub ecx, dword [eax + 0x2c]
mov eax, 0x2aaaaaab
imul ecx
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
sar edx, 2
mov ebx, edx
shr ebx, 0x1f
sar eax, 2
add ebx, edx
cmp ebp, eax
jb 0x4827e8
call fcn.004ac063
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + ebp*4]
mov dword [edx], ebx
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
sub ecx, eax
sar ecx, 2
cmp ebp, ecx
jb 0x48280b
call fcn.004ac063
mov eax, dword [esp + 0x48]
add dword [eax + ebp*4], 4
mov ebx, dword [esp + 0x4c]
mov edx, ebx
sub edx, dword [esp + 0x48]
sar edx, 2
cmp ebp, edx
jb 0x482829
call fcn.004ac063
mov ebx, dword [esp + 0x4c]
mov ecx, dword [esp + 0xcc]
sub ecx, dword [esp + 0xc8]
mov eax, dword [esp + 0x48]
sar ecx, 2
lea edi, [eax + ebp*4]
cmp ebp, ecx
jb 0x48284e
call fcn.004ac063
mov ebx, dword [esp + 0x4c]
mov edx, dword [edi]
mov eax, dword [esp + 0xc8]
cmp edx, dword [eax + ebp*4]
jae 0x483b9f
mov edi, dword [esp + 0x188]
mov ecx, dword [edi + 0x40]
sub ecx, dword [edi + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebp, ecx
jb 0x48288b
call fcn.004ac063
mov ebx, dword [esp + 0x4c]
mov edx, dword [edi + 0x3c]
mov eax, dword [esp + 0x54]
cmp dword [edx + eax + 0x1c], ebp
jne 0x4829bb
sub ebx, dword [esp + 0x48]
sar ebx, 2
cmp ebp, ebx
jb 0x4828ac
call fcn.004ac063
mov ecx, dword [esp + 0x48]
mov edx, dword [ecx + ebp*4]
mov ebx, dword [esp + 0x64]
mov dword [edx], ebx
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
sub ecx, eax
sar ecx, 2
cmp ebp, ecx
jb 0x4828d3
call fcn.004ac063
mov eax, dword [esp + 0x48]
add dword [eax + ebp*4], 4
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x4828f7
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x482920
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jb 0x482949
call fcn.004ac063
mov esi, dword [esi + 0xc]
mov edi, dword [esp + 0x58]
mov ecx, dword [esi + edi + 0x30]
sub ecx, dword [esi + edi + 0x2c]
add esi, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x482972
call fcn.004ac063
mov esi, dword [esi + 0x2c]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0xc]
sar edx, 2
test edx, edx
ja 0x482987
call fcn.004ac063
mov esi, dword [esi + 0xc]
mov eax, dword [esi]
lea ecx, [esp + 0x164]
push ecx
lea edx, [esp + 0x170]
mov dword [esp + 0x16c], ebx
push edx
lea ebx, [esp + 0x12c]
mov dword [esp + 0x16c], eax
call fcn.00484ba0
jmp 0x482b52
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x4829db
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x482a04
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jb 0x482a2d
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x58]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x30]
sub ecx, dword [esi + 0x2c]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x482a52
call fcn.004ac063
mov esi, dword [esi + 0x2c]
mov edx, dword [esi + 0x10]
sub edx, dword [esi + 0xc]
sar edx, 2
test edx, edx
ja 0x482a67
call fcn.004ac063
mov eax, dword [esi + 0xc]
push eax
lea ecx, [esp + 0x160]
push ecx
lea edi, [esp + 0x12c]
call fcn.00484ca0
mov esi, dword [esp + 0x15c]
mov edi, dword [esp + 0x13c]
test esi, esi
je 0x482a9a
cmp esi, dword [esp + 0x124]
je 0x482a9f
call fcn.004ac063
mov ebx, dword [esp + 0x160]
cmp ebx, edi
je 0x482b0f
test esi, esi
jne 0x482b0b
call fcn.004ac063
cmp ebx, dword [esi + 0x18]
jne 0x482abd
call fcn.004ac063
mov edx, dword [esp + 0x4c]
sub edx, dword [esp + 0x48]
sar edx, 2
cmp ebp, edx
jb 0x482ad1
call fcn.004ac063
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + ebp*4]
mov edx, dword [ebx + 0x10]
mov dword [ecx], edx
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
sub ecx, eax
sar ecx, 2
cmp ebp, ecx
jb 0x482af7
call fcn.004ac063
mov eax, dword [esp + 0x48]
add dword [eax + ebp*4], 4
inc dword [esp + 0x1c]
mov edi, dword [esp + 0x188]
jmp 0x480fa4
mov esi, dword [esi]
jmp 0x482ab3
mov edx, dword [esp + 0x4c]
sub edx, dword [esp + 0x48]
sar edx, 2
cmp ebp, edx
jb 0x482b23
call fcn.004ac063
mov eax, dword [esp + 0x48]
mov ecx, dword [eax + ebp*4]
mov edx, dword [esp + 0x64]
mov dword [ecx], edx
mov ecx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
sub ecx, eax
sar ecx, 2
cmp ebp, ecx
jb 0x482b4a
call fcn.004ac063
mov eax, dword [esp + 0x48]
add dword [eax + ebp*4], 4
mov edi, dword [esp + 0x58]
mov ebx, dword [esp + 0x188]
mov ecx, dword [ebx + 0x28]
sub ecx, dword [ebx + 0x24]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x482b79
call fcn.004ac063
mov esi, dword [ebx + 0x24]
add esi, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x18], ecx
jb 0x482ba2
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jb 0x482bcb
call fcn.004ac063
mov eax, dword [esi + 0xc]
mov ecx, dword [eax + edi + 0x30]
sub ecx, dword [eax + edi + 0x2c]
add eax, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
call fcn.004aada2
mov ecx, dword [ebx + 0x28]
sub ecx, dword [ebx + 0x24]
mov dword [esp + 0xd8], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
add esp, 4
cmp ebp, ecx
jb 0x482c19
call fcn.004ac063
mov esi, dword [ebx + 0x24]
add esi, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jb 0x482c42
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x482c6b
call fcn.004ac063
mov edx, dword [esi + 0xc]
mov ecx, dword [edx + edi + 0x30]
sub ecx, dword [edx + edi + 0x2c]
lea eax, [edx + edi + 0x20]
mov eax, 0x2aaaaaab
imul ecx
mov ecx, dword [esp + 0xd4]
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
push 0
push ecx
call fcn.004ad860
add esp, 0xc
mov dword [esp + 0x84], 0
lea esp, [esp]
mov ecx, dword [ebx + 0x28]
sub ecx, dword [ebx + 0x24]
lea eax, [ebx + 0x18]
mov dword [esp + 0x38], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x482cd7
call fcn.004ac063
mov ecx, dword [esp + 0x38]
mov esi, dword [ecx + 0xc]
add esi, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jb 0x482d04
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x482d2d
call fcn.004ac063
mov edx, dword [esi + 0xc]
mov ecx, dword [edi + edx + 0x30]
sub ecx, dword [edi + edx + 0x2c]
lea eax, [edi + edx + 0x20]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x84], eax
jae 0x483a84
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebp, ecx
jb 0x482d7e
call fcn.004ac063
mov edx, dword [esp + 0x38]
mov esi, dword [edx + 0xc]
add esi, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jb 0x482dab
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x482dd4
call fcn.004ac063
mov edx, dword [esi + 0xc]
mov ecx, dword [edi + edx + 0x18]
sub ecx, dword [edi + edx + 0x14]
lea eax, [edi + edx + 8]
sar ecx, 2
lea eax, [ebx + 0x30]
mov dword [esp + 0x34], ecx
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov dword [esp + 0x24], eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x482e11
call fcn.004ac063
mov esi, dword [esp + 0x24]
mov ecx, dword [esi + 0xc]
mov edx, dword [esp + 0x54]
cmp dword [edx + ecx + 0x1c], 0
jl 0x483b9f
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x482e47
call fcn.004ac063
mov ecx, dword [ebx + 0x58]
sub ecx, dword [ebx + 0x54]
mov edx, dword [esi + 0xc]
lea eax, [ebx + 0x48]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x54]
sar ecx, 4
cmp dword [edx + eax + 0x1c], ecx
jae 0x483b9f
mov eax, dword [esp + 0x38]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebp, ecx
jb 0x482e8c
call fcn.004ac063
mov edx, dword [esp + 0x38]
mov esi, dword [edx + 0xc]
add esi, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jb 0x482eb9
call fcn.004ac063
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x482ee2
call fcn.004ac063
mov esi, dword [esi + 0xc]
mov ecx, dword [esi + edi + 0x30]
sub ecx, dword [esi + edi + 0x2c]
add esi, edi
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x84], eax
jb 0x482f0e
call fcn.004ac063
mov edi, dword [esp + 0x84]
mov eax, dword [esi + 0x2c]
lea edi, [edi + edi*2]
add edi, edi
add edi, edi
add edi, edi
mov esi, dword [eax + edi + 0x10]
sub esi, dword [eax + edi + 0xc]
add eax, edi
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
sar esi, 2
mov dword [esp + 0x144], edi
cmp ebp, ecx
jb 0x482f59
call fcn.004ac063
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0xc]
add eax, dword [esp + 0x54]
mov ebx, dword [eax + 0x1c]
mov eax, dword [esp + 0x20]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
sar ecx, 4
cmp ebx, ecx
jb 0x482f81
call fcn.004ac063
mov eax, dword [esp + 0x20]
mov edx, dword [eax + 0xc]
shl ebx, 4
cmp esi, dword [ebx + edx]
jne 0x483b9f
mov dword [esp + 0x60], 0
mov eax, dword [esp + 0x188]
mov ecx, dword [eax + 0x28]
sub ecx, dword [eax + 0x24]
add eax, 0x18
mov esi, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x482fca
call fcn.004ac063
mov ecx, dword [esp + 0x38]
mov ebx, dword [ecx + 0xc]
add ebx, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x482ff5
call fcn.004ac063
mov ebx, dword [ebx + 0xc]
add ebx, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 5
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x48301e
call fcn.004ac063
mov ebx, dword [ebx + 0xc]
add ebx, dword [esp + 0x58]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x30]
sub ecx, dword [ebx + 0x2c]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x84], eax
jb 0x48304a
call fcn.004ac063
mov ebx, dword [ebx + 0x2c]
mov ecx, dword [ebx + edi + 0x10]
sub ecx, dword [ebx + edi + 0xc]
add ebx, edi
sar ecx, 2
cmp dword [esp + 0x60], ecx
jae 0x4838e2
cmp dword [esp + 0x34], 0
jl 0x483b9f
mov edi, dword [esp + 0x38]
mov ecx, dword [edi + 0x10]
sub ecx, dword [edi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x483093
call fcn.004ac063
mov ebx, dword [edi + 0xc]
add ebx, dword [esp + 0x28]
mov eax, 0x2aaaaaab
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp esi, ecx
jb 0x4830ba
call fcn.004ac063
mov ebx, dword [ebx + 0xc]
add ebx, dword [esp + 0x30]
mov eax, 0x66666667
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jb 0x4830e3
call fcn.004ac063
mov ecx, dword [ebx + 0xc]
mov edx, dword [esp + 0x58]
lea eax, [edx + ecx + 0x38]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
sar ecx, 2
cmp dword [esp + 0x34], ecx
jae 0x483b9f
mov esi, dword [esp + 0x188]
mov ecx, dword [esi + 0x40]
sub ecx, dword [esi + 0x3c]
add esi, 0x30
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x48312b
call fcn.004ac063
mov ecx, dword [esp + 0x98]
mov eax, dword [esi + 0xc]
mov edi, dword [esp + 0x54]
sub ecx, dword [esp + 0x94]
mov ebx, dword [eax + edi + 0x1c]
add eax, edi
sar ecx, 2
cmp ebx, ecx
jb 0x483152
call fcn.004ac063
mov ecx, dword [esi + 0x10]
mov edx, dword [esp + 0x94]
sub ecx, dword [esi + 0xc]
lea ebx, [edx + ebx*4]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x48317c
call fcn.004ac063
mov esi, dword [esi + 0xc]
mov ecx, dword [esp + 0x100]
sub ecx, dword [esp + 0xfc]
add esi, edi
mov esi, dword [esi + 0x1c]
sar ecx, 2
cmp esi, ecx
jb 0x48319e
call fcn.004ac063
mov edx, dword [ebx]
mov eax, dword [esp + 0xfc]
cmp edx, dword [eax + esi*4]
jae 0x483b9f
mov ebx, dword [esp + 0x188]
add ebx, 0x18
mov edi, ebp
mov esi, ebx
call fcn.00484890
mov edi, dword [esp + 0x18]
mov esi, eax
call fcn.00484890
mov edi, dword [esp + 0x1c]
mov esi, eax
call fcn.00484690
mov esi, eax
mov ecx, dword [esi + 0x48]
sub ecx, dword [esi + 0x44]
add esi, 0x38
sar ecx, 2
cmp dword [esp + 0x34], ecx
jb 0x4831f2
call fcn.004ac063
mov edx, dword [esi + 0xc]
mov eax, dword [esp + 0x34]
cmp dword [edx + eax*4], 0
je 0x483368
mov ebx, dword [esp + 0x188]
mov ecx, dword [ebx + 0x40]
sub ecx, dword [ebx + 0x3c]
add ebx, 0x30
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x48390c
call fcn.004ac063
mov ecx, dword [ebx + 0xc]
mov esi, dword [esp + 0x54]
mov edx, dword [esi + ecx]
shr edx, 5
test dl, 1
jne 0x483a6d
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x483942
call fcn.004ac063
mov ecx, dword [ebx + 0xc]
mov edx, dword [esi + ecx]
shr edx, 6
test dl, 1
jne 0x483a6d
mov ecx, dword [ebx + 0x10]
sub ecx, dword [ebx + 0xc]
add dword [esp + 0x64], 4
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x483979
call fcn.004ac063
mov ecx, dword [esp + 0x98]
mov eax, dword [ebx + 0xc]
mov edi, dword [esp + 0x54]
sub ecx, dword [esp + 0x94]
mov esi, dword [eax + edi + 0x1c]
add eax, edi
sar ecx, 2
cmp esi, ecx
jb 0x4839a0
call fcn.004ac063
mov ecx, dword [ebx + 0x10]
mov edx, dword [esp + 0x94]
sub ecx, dword [ebx + 0xc]
lea esi, [edx + esi*4]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x4839ca
call fcn.004ac063
mov ebx, dword [ebx + 0xc]
mov ecx, dword [esp + 0x100]
sub ecx, dword [esp + 0xfc]
add ebx, edi
mov ebx, dword [ebx + 0x1c]
sar ecx, 2
cmp ebx, ecx
jb 0x4839ec
call fcn.004ac063
mov edx, dword [esi]
mov eax, dword [esp + 0xfc]
cmp edx, dword [eax + ebx*4]
jae 0x483b9f
mov esi, dword [esp + 0x188]
mov edi, ebp
add esi, 0x30
call fcn.004845d0
mov ecx, dword [esp + 0x98]
sub ecx, dword [esp + 0x94]
mov edi, dword [eax + 0x1c]
sar ecx, 2
cmp edi, ecx
jb 0x483a2c
call fcn.004ac063
mov edx, dword [esp + 0x94]
mov eax, dword [edx + edi*4]
mov ecx, dword [esp + 0x64]
mov edi, ebp
mov dword [eax], ecx
call fcn.004845d0
mov esi, dword [eax + 0x1c]
mov edx, dword [esp + 0x98]
mov eax, dword [esp + 0x94]
sub edx, eax
sar edx, 2
cmp esi, edx
jb 0x483a69
call fcn.004ac063
mov eax, dword [esp + 0x94]
add dword [eax + esi*4], 4
inc dword [esp + 0x84]
mov ebx, dword [esp + 0x188]
mov edi, dword [esp + 0x58]
jmp 0x482cb0
mov ecx, dword [ebx + 0x40]
sub ecx, dword [ebx + 0x3c]
lea esi, [ebx + 0x30]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x483aa7
call fcn.004ac063
mov ecx, dword [esi + 0xc]
mov edi, dword [esp + 0x54]
mov edx, dword [edi + ecx]
shr edx, 5
test dl, 1
jne 0x483b3d
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x483add
call fcn.004ac063
mov ecx, dword [esi + 0xc]
mov edx, dword [edi + ecx]
shr edx, 6
test dl, 1
jne 0x483b3d
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebp, eax
jb 0x483b0b
call fcn.004ac063
mov edx, dword [esp + 0x98]
sub edx, dword [esp + 0x94]
mov ecx, dword [esi + 0xc]
mov esi, dword [ecx + edi + 0x1c]
sar edx, 2
cmp esi, edx
jb 0x483b2c
call fcn.004ac063
mov eax, dword [esp + 0x94]
mov ecx, dword [eax + esi*4]
mov dword [ecx - 4], 0xffffffff
mov edx, dword [esp + 0xd4]
push edx
call fcn.004aacc5
add esp, 4
inc dword [esp + 0x1c]
mov edi, dword [esp + 0x188]
jmp 0x480fa4
mov eax, dword [esp + 0x148]
push eax
call fcn.004aacc5
mov ebx, dword [esp + 0x2c]
add esp, 4
inc dword [esp + 0x18]
jmp 0x480c84
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 2
mov ecx, edx
shr ecx, 0x1f
inc ebp
add ecx, edx
cmp ebp, ecx
jb 0x480bf6
jmp 0x480af2
lea edx, [esp + 0x124]
push edx
mov byte [esp + 0x184], 7
call fcn.00484b40
lea eax, [esp + 0xd8]
push eax
mov byte [esp + 0x184], 6
call fcn.00484600
lea ecx, [esp + 0xf0]
push ecx
mov byte [esp + 0x184], 5
call fcn.00484600
lea edx, [esp + 0xbc]
push edx
mov byte [esp + 0x184], 4
call fcn.00484600
lea eax, [esp + 0x108]
push eax
mov byte [esp + 0x184], 3
call fcn.00484600
lea ecx, [esp + 0x68]
push ecx
mov byte [esp + 0x184], 2
call fcn.00484600
lea edx, [esp + 0x88]
push edx
mov byte [esp + 0x184], 1
call fcn.00484600
lea eax, [esp + 0x3c]
push eax
mov byte [esp + 0x184], 0
call fcn.00484600
lea ecx, [esp + 0xa4]
push ecx
mov dword [esp + 0x184], 0xffffffff
call fcn.00484600
xor al, al
jmp 0x480bda
lea esi, [esp + 0x124]
mov byte [esp + 0x180], 9
call fcn.00485ad0
mov byte [esp + 0x180], 7
mov edx, dword [esp + 0x124]
push edx
call fcn.004aac3a
add esp, 4
jmp 0x483bb4
mov ecx, dword [edi + 0x40]
sub ecx, dword [edi + 0x3c]
lea eax, [edi + 0x30]
mov dword [esp + 0x24], eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
xor ebx, ebx
add eax, edx
je 0x480b07
mov edi, dword [esp + 0x188]
mov ecx, dword [edi + 0x124]
sub ecx, dword [edi + 0x120]
sar ecx, 2
cmp ebx, ecx
jae 0x483e1d
mov edx, dword [edi + 0x124]
sub edx, dword [edi + 0x120]
sar edx, 2
cmp ebx, edx
jb 0x483ced
call fcn.004ac063
mov eax, dword [edi + 0x120]
cmp dword [eax + ebx*4], 0
je 0x483e1d
mov ecx, dword [edi + 0x124]
sub ecx, eax
sar ecx, 2
cmp ebx, ecx
jb 0x483d11
call fcn.004ac063
mov esi, dword [esp + 0x24]
mov edx, edi
mov eax, dword [edx + 0x120]
mov ecx, dword [eax + ebx*4]
mov ebp, dword [ecx + 4]
mov edi, ebx
call fcn.004845d0
mov eax, dword [eax + 0x28]
cdq
idiv ebp
xor esi, esi
mov dword [esp + 0x144], eax
test ebp, ebp
jle 0x483df4
mov edx, dword [esp + 0xb4]
sub edx, dword [esp + 0xb0]
sar edx, 2
cmp ebx, edx
jb 0x483d5b
call fcn.004ac063
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + ebx*4]
mov dword [ecx], esi
mov edx, dword [esp + 0xb4]
sub edx, dword [esp + 0xb0]
sar edx, 2
cmp ebx, edx
jb 0x483d81
call fcn.004ac063
mov eax, dword [esp + 0xb0]
mov ecx, dword [eax + ebx*4]
mov dword [ecx + 4], 0
mov edx, dword [esp + 0xb4]
mov eax, dword [esp + 0xb0]
sub edx, eax
sar edx, 2
cmp ebx, edx
jb 0x483db5
call fcn.004ac063
mov eax, dword [esp + 0xb0]
add dword [eax + ebx*4], 8
mov edi, dword [esp + 0x188]
mov eax, dword [edi + 0xa0]
sub eax, dword [edi + 0x9c]
sar eax, 2
cmp ebx, eax
jb 0x483dd8
call fcn.004ac063
mov ecx, dword [edi + 0x9c]
mov edx, dword [ecx + ebx*4]
imul edx, dword [esp + 0x144]
add esi, edx
sub ebp, 1
jne 0x483d41
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
inc ebx
add eax, edx
cmp ebx, eax
jb 0x483cb7
jmp 0x480b07
lea ecx, [esp + 0xd8]
push ecx
mov byte [esp + 0x184], 6
call fcn.00484600
lea edx, [esp + 0xf0]
push edx
mov byte [esp + 0x184], 5
call fcn.00484600
lea eax, [esp + 0xbc]
push eax
mov byte [esp + 0x184], 4
call fcn.00484600
lea ecx, [esp + 0x108]
push ecx
mov byte [esp + 0x184], 3
call fcn.00484600
lea edx, [esp + 0x68]
push edx
mov byte [esp + 0x184], 2
call fcn.00484600
lea eax, [esp + 0x88]
push eax
mov byte [esp + 0x184], 1
call fcn.00484600
lea ecx, [esp + 0x3c]
push ecx
mov byte [esp + 0x184], 0
call fcn.00484600
lea edx, [esp + 0xa4]
push edx
mov dword [esp + 0x184], 0xffffffff
call fcn.00484600
xor al, al
jmp 0x480bda