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

Disassembly:
push 0xffffffffffffffff
push 0x4c72b8
mov eax, dword fs:[0]
push eax
sub esp, 0xdc
push ebx
push ebp
push esi
push edi
mov eax, dword [0x53856c]
xor eax, esp
push eax
lea eax, [esp + 0xf0]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x100]
xor esi, esi
cmp dword [ebp + 0xf8], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x80], esi
mov dword [esp + 0x1c], esi
jle 0x47b823
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x47a531
call fcn.004ac063
mov eax, dword [ebp + 0x3c]
mov ecx, dword [esp + 0x104]
mov edi, esi
imul edi, edi, 0x2c
add eax, edi
mov eax, dword [eax]
and eax, 0xffffff8f
push eax
push ecx
mov eax, esi
mov dword [esp + 0x1c], edi
call fcn.0048a300
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov dword [esp + 0x9c], eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x47a57b
call fcn.004ac063
mov ecx, dword [ebp + 0x3c]
mov ebx, dword [edi + ecx + 0x14]
sub ebx, dword [edi + ecx + 0x10]
lea eax, [edi + ecx + 4]
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
sar ebx, 2
add eax, edx
mov dword [esp + 0x84], ebx
cmp esi, eax
jb 0x47a5b4
call fcn.004ac063
mov ecx, dword [ebp + 0x3c]
cmp dword [ecx + edi + 0x1c], 0
jl 0x47a608
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x47a5de
call fcn.004ac063
mov ecx, dword [ebp + 0x58]
mov eax, dword [ebp + 0x3c]
sub ecx, dword [ebp + 0x54]
add eax, edi
mov edi, dword [eax + 0x1c]
sar ecx, 4
cmp edi, ecx
jb 0x47a5f8
call fcn.004ac063
mov edx, dword [ebp + 0x54]
shl edi, 4
sub ebx, dword [edi + edx]
mov dword [esp + 0x84], ebx
mov eax, dword [ebp + 0x124]
sub eax, dword [ebp + 0x120]
sar eax, 2
cmp esi, eax
jae 0x47b8f5
mov ecx, dword [ebp + 0x124]
sub ecx, dword [ebp + 0x120]
sar ecx, 2
cmp esi, ecx
jb 0x47a637
call fcn.004ac063
mov edx, dword [ebp + 0x120]
cmp dword [edx + esi*4], 0
je 0x47b8f5
xor eax, eax
mov ecx, dword [ebp + 0x124]
sub ecx, dword [ebp + 0x120]
mov dword [esp + 0x7c], eax
sar ecx, 2
cmp esi, ecx
jb 0x47a669
call fcn.004ac063
mov eax, dword [esp + 0x7c]
mov edx, dword [ebp + 0x120]
mov ecx, dword [edx + esi*4]
cmp eax, dword [ecx + 4]
jge 0x47b812
mov ecx, dword [esp + 0x9c]
cmp dword [ecx + eax*8 + 4], 0
mov edx, dword [ecx + eax*8]
mov dword [esp + 0xa0], edx
mov dword [esp + 0x88], 0
jle 0x47b808
mov dword [esp + 0xa4], 0
lea ecx, [ecx]
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
xor esi, esi
cmp dword [esp + 0x1c], eax
jb 0x47a6d4
call fcn.004ac063
mov eax, dword [ebp + 0x3c]
add eax, dword [esp + 0x14]
push 4
mov edi, dword [eax + 0x14]
sub edi, dword [eax + 0x10]
sar edi, 2
call fcn.004aac60
add esp, 4
cmp eax, esi
je 0x47a6fa
lea ecx, [esp + 0x64]
mov dword [eax], ecx
jmp 0x47a6fc
xor eax, eax
mov dword [esp + 0x64], eax
mov eax, edi
lea ebx, [esp + 0xa4]
lea edi, [esp + 0x64]
mov dword [esp + 0xf8], esi
call fcn.00484de0
push 4
mov dword [esp + 0xfc], 1
call fcn.004aac60
add esp, 4
cmp eax, esi
je 0x47a73a
lea edx, [esp + 0x20]
mov dword [eax], edx
jmp 0x47a73c
xor eax, eax
mov dword [esp + 0x20], eax
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
push 4
mov byte [esp + 0xfc], 3
call fcn.004aac60
add esp, 4
cmp eax, esi
je 0x47a76a
lea ecx, [esp + 0x4c]
mov dword [eax], ecx
jmp 0x47a76c
xor eax, eax
mov dword [esp + 0x4c], eax
mov dword [esp + 0x58], esi
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov edx, dword [esp + 0xa0]
mov eax, dword [esp + 0x88]
mov ecx, dword [esp + 0x104]
mov byte [esp + 0xf8], 5
push edx
push eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x94], esi
mov dword [esp + 0x98], esi
mov dword [esp + 0x9c], esi
mov dword [esp + 0xa0], esi
call fcn.0048a3e0
mov dword [esp + 0x44], eax
cmp eax, esi
je 0x47b841
xor esi, esi
xor edi, edi
mov dword [esp + 0x40], esi
mov dword [esp + 0x48], edi
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov ebx, dword [esp + 0x1c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebx, ecx
jb 0x47a7fc
call fcn.004ac063
mov edx, dword [ebp + 0x3c]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + eax + 0x14]
sub ecx, dword [edx + eax + 0x10]
lea eax, [edx + eax + 4]
sar ecx, 2
cmp edi, ecx
jae 0x47b1fe
test edi, edi
jne 0x47abcf
mov ecx, dword [ebp + 0x40]
sub ecx, edx
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x47a841
call fcn.004ac063
mov edi, dword [ebp + 0x3c]
mov esi, dword [esp + 0x14]
mov ecx, dword [edi + esi + 0x14]
sub ecx, dword [edi + esi + 0x10]
add edi, esi
sar ecx, 2
test ecx, ecx
ja 0x47a85e
call fcn.004ac063
mov edx, dword [edi + 0x10]
cmp dword [edx], 0
je 0x47aa68
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x47a88a
call fcn.004ac063
mov edi, dword [ebp + 0x3c]
mov ecx, dword [edi + esi + 0x14]
sub ecx, dword [edi + esi + 0x10]
add edi, esi
sar ecx, 2
test ecx, ecx
ja 0x47a8a3
call fcn.004ac063
mov edx, dword [edi + 0x10]
cmp dword [edx], 0xa
je 0x47aa68
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x47a8cf
call fcn.004ac063
mov ecx, dword [ebp + 0x3c]
mov edx, dword [esi + ecx]
and edx, 0xffffff8f
cmp edx, 4
jne 0x47a976
mov eax, dword [esp + 0x7c]
cdq
push edx
push eax
mov ecx, ebp
call fcn.0047bad0
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x80], eax
lea eax, [esp + 0x7c]
mov dword [esp + 0x38], eax
test edx, edx
jne 0x47a90a
xor ecx, ecx
jmp 0x47a913
mov ecx, dword [esp + 0x34]
sub ecx, edx
sar ecx, 2
mov eax, dword [esp + 0x30]
mov esi, eax
sub esi, edx
sar esi, 2
cmp esi, ecx
jae 0x47a93f
mov edx, dword [esp + 0x80]
lea ecx, [esp + 0x7c]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x30], eax
mov dword [esp + 0x3c], edx
jmp 0x47b1c9
mov esi, eax
cmp edx, eax
jbe 0x47a94a
call fcn.004ac063
mov eax, dword [esp + 0x20]
push esi
push eax
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0xe4]
push eax
lea eax, [esp + 0x30]
call fcn.00485830
mov edx, dword [esp + 0x80]
mov dword [esp + 0x3c], edx
jmp 0x47b1c9
mov edx, dword [esp + 0x2c]
test edx, edx
jne 0x47a982
xor ecx, ecx
jmp 0x47a98b
mov ecx, dword [esp + 0x34]
sub ecx, edx
sar ecx, 2
mov eax, dword [esp + 0x30]
mov edi, eax
sub edi, edx
sar edi, 2
cmp edi, ecx
jae 0x47a9a9
mov ecx, dword [esp + 0x44]
mov dword [eax], ecx
add eax, 4
mov dword [esp + 0x30], eax
jmp 0x47a9d0
mov edi, eax
cmp edx, eax
jbe 0x47a9b4
call fcn.004ac063
mov eax, dword [esp + 0x20]
push edi
push eax
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0xf4]
push eax
lea eax, [esp + 0x30]
call fcn.00485830
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebx, ecx
jb 0x47a9f0
call fcn.004ac063
mov edi, dword [ebp + 0x3c]
mov edx, dword [edi + esi + 0x14]
sub edx, dword [edi + esi + 0x10]
add edi, esi
sar edx, 2
test edx, edx
ja 0x47aa09
call fcn.004ac063
mov edi, dword [edi + 0x10]
mov edx, dword [edi]
lea esi, [esp + 0x80]
lea edi, [esp + 0x44]
mov ecx, ebp
call fcn.0047c070
test al, al
jne 0x47abbf
lea eax, [esp + 0x4c]
push eax
mov byte [esp + 0xfc], 3
call fcn.00484600
lea ecx, [esp + 0x20]
push ecx
mov byte [esp + 0xfc], 1
call fcn.00484600
lea edx, [esp + 0x64]
push edx
mov dword [esp + 0xfc], 0xffffffff
call fcn.00484600
xor al, al
jmp 0x47b825
mov eax, dword [esp + 0x44]
mov ebx, dword [eax]
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
add eax, 4
mov dword [esp + 0x44], eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jb 0x47aa97
call fcn.004ac063
mov eax, dword [ebp + 0x3c]
add eax, dword [esp + 0x14]
mov edi, dword [eax + 0x20]
test ebx, ebx
jge 0x47aaa9
xor eax, eax
jmp 0x47ab0b
test edi, edi
jl 0x47aafe
mov esi, dword [esp + 0x104]
mov ecx, dword [esi + 0x98]
sub ecx, dword [esi + 0x94]
sar ecx, 2
cmp edi, ecx
jae 0x47aafe
mov edx, dword [esi + 0x98]
sub edx, dword [esi + 0x94]
sar edx, 2
cmp edi, edx
jb 0x47aadf
call fcn.004ac063
mov eax, dword [esi + 0x94]
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
test eax, eax
jl 0x47aafe
mov edx, dword [esi + 8]
add eax, edx
mov edx, dword [esi + 0xc]
cmp eax, edx
jae 0x47aafe
test eax, eax
jne 0x47ab02
xor eax, eax
jmp 0x47ab0b
lea ecx, [eax + ebx]
cmp ecx, edx
sbb eax, eax
and eax, ecx
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x3c], eax
test edi, edi
jne 0x47ab1b
xor edx, edx
jmp 0x47ab24
mov edx, dword [esp + 0x34]
sub edx, edi
sar edx, 2
mov ecx, dword [esp + 0x30]
mov esi, ecx
sub esi, edi
sar esi, 2
cmp esi, edx
jae 0x47ab3e
mov dword [ecx], eax
add ecx, 4
mov dword [esp + 0x30], ecx
jmp 0x47ab65
mov ebx, ecx
cmp edi, ecx
jbe 0x47ab49
call fcn.004ac063
mov eax, dword [esp + 0x20]
push ebx
push eax
lea eax, [esp + 0x44]
push eax
lea ecx, [esp + 0xec]
push ecx
lea eax, [esp + 0x30]
call fcn.00485830
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jb 0x47ab87
call fcn.004ac063
mov edi, dword [ebp + 0x3c]
add edi, dword [esp + 0x14]
mov ecx, dword [edi + 0x14]
sub ecx, dword [edi + 0x10]
sar ecx, 2
test ecx, ecx
ja 0x47aba0
call fcn.004ac063
mov edi, dword [edi + 0x10]
mov edx, dword [edi]
lea esi, [esp + 0x80]
lea edi, [esp + 0x3c]
mov ecx, ebp
call fcn.0047c070
test al, al
je 0x47b8fc
mov edx, dword [esp + 0x80]
mov dword [esp + 0x3c], edx
jmp 0x47b1c9
mov eax, dword [esp + 0x84]
cmp edi, eax
jge 0x47aea4
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x47abfe
call fcn.004ac063
mov edi, dword [ebp + 0x3c]
add edi, dword [esp + 0x14]
mov esi, dword [esp + 0x48]
mov ecx, dword [edi + 0x14]
sub ecx, dword [edi + 0x10]
sar ecx, 2
cmp esi, ecx
jb 0x47ac1b
call fcn.004ac063
mov edx, dword [edi + 0x10]
lea eax, [esi*4]
cmp dword [eax + edx], 0
mov dword [esp + 0x18], eax
je 0x47ad6c
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x47ac53
call fcn.004ac063
mov edi, dword [ebp + 0x3c]
add edi, dword [esp + 0x14]
mov ecx, dword [edi + 0x14]
sub ecx, dword [edi + 0x10]
sar ecx, 2
cmp esi, ecx
jb 0x47ac6c
call fcn.004ac063
mov edx, dword [edi + 0x10]
mov eax, dword [esp + 0x18]
cmp dword [eax + edx], 0xa
je 0x47ad6c
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebx, ecx
jb 0x47ac9d
call fcn.004ac063
mov edi, dword [ebp + 0x3c]
add edi, dword [esp + 0x14]
mov edx, dword [edi + 0x14]
sub edx, dword [edi + 0x10]
sar edx, 2
cmp esi, edx
jb 0x47acb6
call fcn.004ac063
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x18]
cmp dword [ecx + eax], 0xb
je 0x47ad6c
mov edx, dword [esp + 0x2c]
test edx, edx
jne 0x47acd3
xor ecx, ecx
jmp 0x47acdc
mov ecx, dword [esp + 0x34]
sub ecx, edx
sar ecx, 2
mov eax, dword [esp + 0x30]
mov edi, eax
sub edi, edx
sar edi, 2
cmp edi, ecx
jae 0x47acfa
mov edx, dword [esp + 0x44]
mov dword [eax], edx
add eax, 4
mov dword [esp + 0x30], eax
jmp 0x47ad21
mov edi, eax
cmp edx, eax
jbe 0x47ad05
call fcn.004ac063
mov eax, dword [esp + 0x20]
push edi
push eax
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0xd4]
push ecx
lea eax, [esp + 0x30]
call fcn.00485830
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x47ad41
call fcn.004ac063
mov edi, dword [ebp + 0x3c]
add edi, dword [esp + 0x14]
mov ecx, dword [edi + 0x14]
sub ecx, dword [edi + 0x10]
sar ecx, 2
cmp esi, ecx
jb 0x47ad5a
call fcn.004ac063
mov edi, dword [edi + 0x10]
add edi, dword [esp + 0x18]
mov edx, dword [edi]
lea edi, [esp + 0x44]
jmp 0x47b1b6
mov eax, dword [esp + 0x44]
mov ebx, dword [eax]
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
add eax, 4
mov dword [esp + 0x44], eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jb 0x47ad9b
call fcn.004ac063
mov eax, dword [ebp + 0x3c]
add eax, dword [esp + 0x14]
mov edi, dword [eax + 0x24]
test ebx, ebx
jge 0x47adad
xor eax, eax
jmp 0x47ae0f
test edi, edi
jl 0x47ae02
mov esi, dword [esp + 0x104]
mov ecx, dword [esi + 0x98]
sub ecx, dword [esi + 0x94]
sar ecx, 2
cmp edi, ecx
jae 0x47ae02
mov edx, dword [esi + 0x98]
sub edx, dword [esi + 0x94]
sar edx, 2
cmp edi, edx
jb 0x47ade3
call fcn.004ac063
mov eax, dword [esi + 0x94]
mov ecx, dword [eax + edi*4]
mov eax, dword [ecx]
test eax, eax
jl 0x47ae02
mov edx, dword [esi + 8]
add eax, edx
mov edx, dword [esi + 0xc]
cmp eax, edx
jae 0x47ae02
test eax, eax
jne 0x47ae06
xor eax, eax
jmp 0x47ae0f
lea ecx, [ebx + eax]
cmp ecx, edx
sbb eax, eax
and eax, ecx
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
test edi, edi
jne 0x47ae1f
xor edx, edx
jmp 0x47ae28
mov edx, dword [esp + 0x34]
sub edx, edi
sar edx, 2
mov ecx, dword [esp + 0x30]
mov esi, ecx
sub esi, edi
sar esi, 2
cmp esi, edx
jae 0x47ae42
mov dword [ecx], eax
add ecx, 4
mov dword [esp + 0x30], ecx
jmp 0x47ae69
mov ebx, ecx
cmp edi, ecx
jbe 0x47ae4d
call fcn.004ac063
mov eax, dword [esp + 0x20]
push ebx
push eax
lea eax, [esp + 0x40]
push eax
lea ecx, [esp + 0xdc]
push ecx
lea eax, [esp + 0x30]
call fcn.00485830
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x1c], eax
jb 0x47ae8b
call fcn.004ac063
mov edi, dword [ebp + 0x3c]
add edi, dword [esp + 0x14]
mov ecx, dword [edi + 0x14]
sub ecx, dword [edi + 0x10]
sar ecx, 2
cmp dword [esp + 0x48], ecx
jmp 0x47b1a2
jne 0x47aec9
mov edx, dword [esp + 0x44]
mov eax, dword [edx]
mov ecx, dword [esp + 0x104]
push eax
mov eax, ebx
call fcn.0048a4f0
mov esi, eax
mov dword [esp + 0x40], esi
test esi, esi
je 0x47aa28
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x47aee9
call fcn.004ac063
mov edi, dword [ebp + 0x3c]
add edi, dword [esp + 0x14]
mov ecx, dword [edi + 0x14]
sub ecx, dword [edi + 0x10]
sar ecx, 2
cmp dword [esp + 0x48], ecx
jb 0x47af04
call fcn.004ac063
mov eax, dword [esp + 0x48]
mov edx, dword [edi + 0x10]
add eax, eax
add eax, eax
cmp dword [eax + edx], 0
mov dword [esp + 0x18], eax
je 0x47b058
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp ebx, eax
jb 0x47af3d
call fcn.004ac063
mov edi, dword [ebp + 0x3c]
add edi, dword [esp + 0x14]
mov ecx, dword [edi + 0x14]
sub ecx, dword [edi + 0x10]
sar ecx, 2
cmp dword [esp + 0x48], ecx
jb 0x47af58
call fcn.004ac063
mov edx, dword [edi + 0x10]
mov eax, dword [esp + 0x18]
cmp dword [eax + edx], 0xa
je 0x47b058
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebx, ecx
jb 0x47af89
call fcn.004ac063
mov edi, dword [ebp + 0x3c]
add edi, dword [esp + 0x14]
mov edx, dword [edi + 0x14]
sub edx, dword [edi + 0x10]
sar edx, 2
cmp dword [esp + 0x48], edx
jb 0x47afa4
call fcn.004ac063
mov eax, dword [edi + 0x10]
mov ecx, dword [esp + 0x18]
cmp dword [ecx + eax], 0xb
je 0x47b058
mov edx, dword [esp + 0x2c]
test edx, edx
jne 0x47afc1
xor ecx, ecx
jmp 0x47afca
mov ecx, dword [esp + 0x34]
sub ecx, edx
sar ecx, 2
mov eax, dword [esp + 0x30]
mov edi, eax
sub edi, edx
sar edi, 2
cmp edi, ecx
jae 0x47afe4
mov dword [eax], esi
add eax, 4
mov dword [esp + 0x30], eax
jmp 0x47b00b
mov edi, eax
cmp edx, eax
jbe 0x47afef
call fcn.004ac063
mov eax, dword [esp + 0x20]
push edi
push eax
lea edx, [esp + 0x48]
push edx
lea eax, [esp + 0xcc]
push eax
lea eax, [esp + 0x30]
call fcn.00485830
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp ebx, ecx
jb 0x47b02b
call fcn.004ac063
mov edi, dword [ebp + 0x3c]
add edi, dword [esp + 0x14]
mov edx, dword [edi + 0x14]
sub edx, dword [edi + 0x10]
sar edx, 2
cmp dword [esp + 0x48], edx
jb 0x47b046
call fcn.004ac063
mov edi, dword [edi + 0x10]
add edi, dword [esp + 0x18]
mov edx, dword [edi]
lea edi, [esp + 0x40]
jmp 0x47b1b6
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov ebx, dword [esi]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add esi, 4
add eax, edx
mov dword [esp + 0x40], esi
cmp dword [esp + 0x1c], eax
jb 0x47b083
call fcn.004ac063
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x58]
add eax, dword [esp + 0x14]
sub ecx, dword [ebp + 0x54]
mov edi, dword [eax + 0x1c]
sar ecx, 4
cmp edi, ecx
jb 0x47b09f
call fcn.004ac063
shl edi, 4
add edi, dword [ebp + 0x54]
mov edi, dword [edi + 8]
test ebx, ebx
jge 0x47b0b0
xor eax, eax
jmp 0x47b112
test edi, edi
jl 0x47b105
mov esi, dword [esp + 0x104]
mov edx, dword [esi + 0x98]
sub edx, dword [esi + 0x94]
sar edx, 2
cmp edi, edx
jae 0x47b105
mov eax, dword [esi + 0x98]
sub eax, dword [esi + 0x94]
sar eax, 2
cmp edi, eax
jb 0x47b0e6
call fcn.004ac063
mov ecx, dword [esi + 0x94]
mov edx, dword [ecx + edi*4]
mov eax, dword [edx]
test eax, eax
jl 0x47b105
mov ecx, dword [esi + 8]
mov edx, dword [esi + 0xc]
add eax, ecx
cmp eax, edx
jae 0x47b105
test eax, eax
jne 0x47b109
xor eax, eax
jmp 0x47b112
lea ecx, [ebx + eax]
cmp ecx, edx
sbb eax, eax
and eax, ecx
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x38], eax
test edi, edi
jne 0x47b122
xor edx, edx
jmp 0x47b12b
mov edx, dword [esp + 0x34]
sub edx, edi
sar edx, 2
mov ecx, dword [esp + 0x30]
mov esi, ecx
sub esi, edi
sar esi, 2
cmp esi, edx
jae 0x47b145
mov dword [ecx], eax
add ecx, 4
mov dword [esp + 0x30], ecx
jmp 0x47b16c
mov ebx, ecx
cmp edi, ecx
jbe 0x47b150
call fcn.004ac063
mov eax, dword [esp + 0x20]
push ebx
push eax
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0xb4]
push eax
lea eax, [esp + 0x30]
call fcn.00485830
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp dword [esp + 0x1c], ecx
jb 0x47b18e
call fcn.004ac063
mov edi, dword [ebp + 0x3c]
add edi, dword [esp + 0x14]
mov edx, dword [edi + 0x14]
sub edx, dword [edi + 0x10]
sar edx, 2
cmp dword [esp + 0x48], edx
jb 0x47b1a9
call fcn.004ac063
mov edi, dword [edi + 0x10]
add edi, dword [esp + 0x18]
mov edx, dword [edi]
lea edi, [esp + 0x38]
lea esi, [esp + 0x3c]
mov ecx, ebp
call fcn.0047c070
test al, al
je 0x47aa28
mov eax, dword [esp + 0x74]
sub eax, dword [esp + 0x70]
mov esi, dword [esp + 0x48]
sar eax, 2
cmp esi, eax
jb 0x47b1e1
call fcn.004ac063
mov ecx, dword [esp + 0x3c]
mov edx, dword [esp + 0x70]
mov dword [edx + esi*4], ecx
inc esi
mov dword [esp + 0x48], esi
mov esi, dword [esp + 0x40]
mov edi, dword [esp + 0x48]
jmp 0x47a7d8
mov eax, 0x454800
test eax, eax
je 0x47b271
lea ecx, [esp + 0x4c]
push ecx
lea edx, [esp + 0x68]
push edx
push ebx
push ebp
lea edx, [esp + 0xa4]
lea ecx, [esp + 0x9c]
call fcn.0047c5f0
test al, al
je 0x47b271
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x24]
push ecx
push ebx
call fcn.0045bc00
add esp, 0xc
test al, al
je 0x47b27d
lea edx, [esp + 0x94]
push edx
push ebx
sub esp, 0x18
mov eax, esp
mov dword [esp + 0x58], esp
push eax
lea ecx, [esp + 0x88]
lea edi, [esp + 0xb0]
call fcn.0045cd30
push ebp
mov ecx, edi
call fcn.0047c390
jmp 0x47b27d
push ebx
lea ecx, [esp + 0x68]
push ecx
push ebp
call fcn.0047dd20
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
mov ebx, eax
cmp edi, eax
jbe 0x47b298
call fcn.004ac063
mov eax, dword [esp + 0x5c]
mov edi, dword [esp + 0x58]
mov esi, dword [esp + 0x4c]
cmp edi, eax
jbe 0x47b2a5
call fcn.004ac063
mov edx, dword [esp + 0x4c]
push ebx
push esi
push edi
push edx
lea ebx, [esp + 0xc0]
lea esi, [esp + 0x5c]
call fcn.0048ac50
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov edi, dword [esp + 0x1c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x47b2e1
call fcn.004ac063
mov ecx, dword [ebp + 0x3c]
mov edx, dword [esp + 0x14]
cmp dword [ecx + edx + 0x1c], 0
jl 0x47b781
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
test eax, eax
jl 0x47b781
mov ecx, dword [esp + 0x104]
push eax
mov eax, edi
call fcn.0048a4f0
mov dword [esp + 0x40], eax
test eax, eax
je 0x47b982
mov ebx, dword [esp + 0x84]
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0x18], ebx
cmp edi, ecx
jb 0x47b347
call fcn.004ac063
mov edx, dword [ebp + 0x3c]
mov eax, dword [esp + 0x14]
mov ecx, dword [edx + eax + 0x14]
sub ecx, dword [edx + eax + 0x10]
lea eax, [edx + eax + 4]
sar ecx, 2
cmp ebx, ecx
jae 0x47b6ac
mov ecx, dword [ebp + 0x40]
sub ecx, edx
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x47b384
call fcn.004ac063
mov esi, dword [ebp + 0x3c]
add esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
sar ecx, 2
cmp ebx, ecx
jb 0x47b39d
call fcn.004ac063
mov edx, dword [esi + 0x10]
cmp dword [edx + ebx*4], 0
je 0x47b53a
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x47b3ca
call fcn.004ac063
mov esi, dword [ebp + 0x3c]
add esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
sar ecx, 2
cmp ebx, ecx
jb 0x47b3e3
call fcn.004ac063
mov edx, dword [esi + 0x10]
cmp dword [edx + ebx*4], 0xa
je 0x47b53a
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x47b410
call fcn.004ac063
mov esi, dword [ebp + 0x3c]
add esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
sar ecx, 2
cmp ebx, ecx
jb 0x47b429
call fcn.004ac063
mov edx, dword [esi + 0x10]
cmp dword [edx + ebx*4], 0xb
je 0x47b53a
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x2c]
sar eax, 2
cmp ebx, eax
jb 0x47b44a
call fcn.004ac063
mov ecx, dword [esp + 0x40]
mov edx, dword [esp + 0x2c]
mov dword [edx + ebx*4], ecx
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x47b475
call fcn.004ac063
mov esi, dword [ebp + 0x3c]
add esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
sar ecx, 2
cmp ebx, ecx
jb 0x47b48e
call fcn.004ac063
mov eax, dword [esi + 0x10]
lea ecx, [ebx*4]
mov edx, dword [eax + ecx]
add eax, ecx
lea esi, [esp + 0x3c]
lea edi, [esp + 0x40]
mov ecx, ebp
call fcn.0047c070
test al, al
jne 0x47b683
mov byte [esp + 0xf8], 0x12
mov eax, dword [esp + 0x58]
xor esi, esi
cmp eax, esi
je 0x47b4cf
push eax
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 3
mov eax, dword [esp + 0x4c]
push eax
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 0x13
mov eax, dword [esp + 0x2c]
cmp eax, esi
je 0x47b509
push eax
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 1
mov ecx, dword [esp + 0x20]
push ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
call fcn.004aac3a
add esp, 4
mov dword [esp + 0xf8], 0x14
jmp 0x47b8c0
mov eax, dword [esp + 0x40]
mov ebx, dword [eax]
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
add eax, 4
mov dword [esp + 0x40], eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x47b567
call fcn.004ac063
mov eax, dword [ebp + 0x3c]
mov ecx, dword [ebp + 0x58]
add eax, dword [esp + 0x14]
sub ecx, dword [ebp + 0x54]
mov esi, dword [eax + 0x1c]
sar ecx, 4
cmp esi, ecx
jb 0x47b583
call fcn.004ac063
shl esi, 4
add esi, dword [ebp + 0x54]
mov esi, dword [esi + 8]
test ebx, ebx
jge 0x47b594
xor esi, esi
jmp 0x47b5fc
test esi, esi
jl 0x47b5f0
mov ecx, dword [esp + 0x104]
mov edx, dword [ecx + 0x98]
sub edx, dword [ecx + 0x94]
sar edx, 2
cmp esi, edx
jae 0x47b5f0
mov eax, dword [ecx + 0x98]
sub eax, dword [ecx + 0x94]
sar eax, 2
cmp esi, eax
jb 0x47b5d1
call fcn.004ac063
mov ecx, dword [esp + 0x104]
mov edx, dword [ecx + 0x94]
mov eax, dword [edx + esi*4]
mov eax, dword [eax]
test eax, eax
jl 0x47b5f0
mov edx, dword [ecx + 8]
mov ecx, dword [ecx + 0xc]
add eax, edx
cmp eax, ecx
jae 0x47b5f0
test eax, eax
jne 0x47b5f4
xor esi, esi
jmp 0x47b5fc
add eax, ebx
cmp eax, ecx
sbb esi, esi
and esi, eax
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x2c]
mov dword [esp + 0x38], esi
sar eax, 2
cmp dword [esp + 0x18], eax
jb 0x47b616
call fcn.004ac063
mov ebx, dword [esp + 0x18]
mov ecx, dword [esp + 0x2c]
add ebx, ebx
add ebx, ebx
mov dword [ebx + ecx], esi
mov ecx, dword [ebp + 0x40]
sub ecx, dword [ebp + 0x3c]
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x47b645
call fcn.004ac063
mov esi, dword [ebp + 0x3c]
add esi, dword [esp + 0x14]
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
sar ecx, 2
cmp dword [esp + 0x18], ecx
jb 0x47b660
call fcn.004ac063
mov eax, dword [esi + 0x10]
mov edx, dword [eax + ebx]
add eax, ebx
lea esi, [esp + 0x3c]
lea edi, [esp + 0x38]
mov ecx, ebp
call fcn.0047c070
test al, al
je 0x47ba47
mov ebx, dword [esp + 0x18]
mov edx, dword [esp + 0x74]
sub edx, dword [esp + 0x70]
sar edx, 2
cmp ebx, edx
jb 0x47b697
call fcn.004ac063
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x70]
mov edi, dword [esp + 0x1c]
mov dword [ecx + ebx*4], eax
inc ebx
jmp 0x47b323
mov edx, 0x454800
test edx, edx
je 0x47b71f
lea eax, [esp + 0x4c]
push eax
lea ecx, [esp + 0x68]
push ecx
push edi
push ebp
lea edx, [esp + 0xa4]
lea ecx, [esp + 0x9c]
call fcn.0047c5f0
test al, al
je 0x47b71f
lea edx, [esp + 0x4c]
push edx
lea eax, [esp + 0x24]
push eax
push edi
call fcn.0045bc00
add esp, 0xc
test al, al
je 0x47b72b
lea ecx, [esp + 0x94]
push ecx
push edi
sub esp, 0x18
mov edx, esp
mov dword [esp + 0x58], esp
push edx
lea ecx, [esp + 0x88]
lea esi, [esp + 0xb0]
call fcn.0045cd30
push ebp
mov ecx, esi
call fcn.0047c390
jmp 0x47b72b
push edi
lea eax, [esp + 0x68]
push eax
push ebp
call fcn.0047dd20
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x38], ecx
cmp eax, ecx
jbe 0x47b748
call fcn.004ac063
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x58]
mov esi, dword [esp + 0x4c]
mov ebx, eax
cmp eax, ecx
jbe 0x47b757
call fcn.004ac063
mov ecx, dword [esp + 0x38]
mov edx, dword [esp + 0x4c]
push ecx
push esi
push ebx
push edx
lea ebx, [esp + 0xc8]
lea esi, [esp + 0x5c]
call fcn.0048ac50
mov eax, dword [esp + 0x40]
mov eax, dword [eax]
test eax, eax
jge 0x47b301
mov byte [esp + 0xf8], 0x15
mov eax, dword [esp + 0x58]
xor esi, esi
cmp eax, esi
je 0x47b79c
push eax
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 3
mov ecx, dword [esp + 0x4c]
push ecx
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
call fcn.004aac3a
add esp, 4
lea edx, [esp + 0x20]
push edx
mov byte [esp + 0xfc], 1
call fcn.00484600
lea eax, [esp + 0x64]
push eax
mov dword [esp + 0xfc], 0xffffffff
call fcn.00484600
mov ecx, dword [esp + 0x88]
mov eax, dword [esp + 0x7c]
mov edx, dword [esp + 0x9c]
inc ecx
cmp ecx, dword [edx + eax*8 + 4]
mov dword [esp + 0x88], ecx
jl 0x47a6b0
mov esi, dword [esp + 0x1c]
inc eax
jmp 0x47a649
inc esi
cmp esi, dword [ebp + 0xf8]
mov dword [esp + 0x1c], esi
jl 0x47a511
mov al, 1
mov ecx, dword [esp + 0xf0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xe8
ret 8
mov byte [esp + 0xf8], 6
mov eax, dword [esp + 0x58]
cmp eax, esi
je 0x47b85a
push eax
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 3
mov eax, dword [esp + 0x4c]
push eax
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 7
mov eax, dword [esp + 0x2c]
cmp eax, esi
je 0x47b894
push eax
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 1
mov ecx, dword [esp + 0x20]
push ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
call fcn.004aac3a
add esp, 4
mov dword [esp + 0xf8], 8
mov eax, dword [esp + 0x70]
cmp eax, esi
je 0x47b8d1
push eax
call fcn.004aac3a
add esp, 4
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], esi
mov dword [esp + 0x78], esi
mov dword [esp + 0xf8], 0xffffffff
mov edx, dword [esp + 0x64]
push edx
call fcn.004aac3a
add esp, 4
xor al, al
jmp 0x47b825
mov byte [esp + 0xf8], 9
mov eax, dword [esp + 0x58]
xor esi, esi
cmp eax, esi
je 0x47b917
push eax
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 3
mov eax, dword [esp + 0x4c]
push eax
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 0xa
mov eax, dword [esp + 0x2c]
cmp eax, esi
je 0x47b951
push eax
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 1
mov ecx, dword [esp + 0x20]
push ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
call fcn.004aac3a
add esp, 4
mov dword [esp + 0xf8], 0xb
jmp 0x47b8c0
mov byte [esp + 0xf8], 0xc
mov eax, dword [esp + 0x58]
test eax, eax
je 0x47b99b
push eax
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 3
mov eax, dword [esp + 0x4c]
push eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 0xd
mov eax, dword [esp + 0x2c]
test eax, eax
je 0x47b9e1
push eax
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 1
mov ecx, dword [esp + 0x20]
push ecx
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
call fcn.004aac3a
add esp, 4
mov dword [esp + 0xf8], 0xe
mov eax, dword [esp + 0x70]
test eax, eax
je 0x47ba2a
push eax
call fcn.004aac3a
add esp, 4
mov dword [esp + 0x70], 0
mov dword [esp + 0x74], 0
mov dword [esp + 0x78], 0
jmp 0x47b8dd
mov byte [esp + 0xf8], 0xf
mov eax, dword [esp + 0x58]
xor esi, esi
cmp eax, esi
je 0x47ba62
push eax
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 3
mov eax, dword [esp + 0x4c]
push eax
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 0x10
mov eax, dword [esp + 0x2c]
cmp eax, esi
je 0x47ba9c
push eax
call fcn.004aac3a
add esp, 4
mov byte [esp + 0xf8], 1
mov ecx, dword [esp + 0x20]
push ecx
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
call fcn.004aac3a
add esp, 4
mov dword [esp + 0xf8], 0x11
jmp 0x47b8c0