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

Disassembly:
mov ecx, dword [0x8602c0]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x74]
cmp eax, dword [ecx + 8]
jbe 0x4f9ad8
sub esp, 0xf4
nop
mov ebx, dword [esp + 0x104]
mov ebp, dword [esp + 0x108]
jmp 0x4f8a30
dec ebp
test ebp, ebp
jle 0x4f8a3c
mov esi, dword [ebx + ebp*4 - 4]
test esi, esi
je 0x4f8a2f
mov edx, dword [esp + 0x10c]
cmp edx, ebp
jb 0x4f9ad0
nop
mov esi, dword [esp + 0x110]
mov edi, dword [esp + 0x114]
jmp 0x4f8a5d
dec edi
test edi, edi
jle 0x4f8a69
mov eax, dword [esi + edi*4 - 4]
test eax, eax
je 0x4f8a5c
mov eax, esi
mov esi, dword [esp + 0x118]
cmp esi, edi
jb 0x4f9ac7
test ebp, ebp
je 0x4f8c74
cmp edi, 0x64
jl 0x4f8c30
mov ecx, ebp
sub ebp, edi
test ebp, ebp
jl 0x4f8c29
mov esi, dword [esp + 0x128]
mov ebx, dword [esp + 0x11c]
cmp esi, ebx
jbe 0x4f9abe
mov dword [esp + 0xc8], ecx
mov dword [esp + 0x9c], edi
mov dword [esp + 0x78], ebp
mov esi, dword [esp + 0x124]
mov eax, dword [esi + ebx*4]
shr edi, 1
mov dword [esp + 0xa8], edi
test eax, eax
je 0x4f8ba9
mov edx, dword [eax + 8]
lea ecx, [edi + 1]
cmp edx, ecx
jl 0x4f8af1
jb 0x4f9ab9
mov eax, dword [eax]
jmp 0x4f8b82
test edi, edi
jne 0x4f8b3c
lea eax, [0x60d8c0]
mov dword [esp], eax
mov dword [esp + 4], 1
mov dword [esp + 8], 1
call fcn.0044da60
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x11c]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x124]
mov edi, dword [esp + 0xa8]
mov edx, 1
mov ecx, 1
jmp 0x4f8b82
mov dword [esp + 0x54], ecx
lea eax, [0x60d8c0]
mov dword [esp], eax
mov dword [esp + 4], ecx
lea edx, [edi + 5]
mov dword [esp + 0x48], edx
mov dword [esp + 8], edx
call fcn.0044da60
mov eax, dword [esp + 0xc]
mov ebx, dword [esp + 0x11c]
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x124]
mov edi, dword [esp + 0xa8]
mov edx, dword [esp + 0x48]
mov ecx, dword [esp + 0x54]
mov ebx, dword [esi + ebx*4]
mov dword [ebx + 4], ecx
mov dword [ebx + 8], edx
mov ecx, dword [0x860560]
test ecx, ecx
je 0x4f8ba5
mov ecx, edi
call fcn.00467c50
mov dword [edi], eax
mov edx, dword [ebx]
mov dword [edi + 4], edx
mov edi, ecx
mov dword [ebx], eax
jmp 0x4f8c08
mov eax, dword [esp + 0x9c]
mov dword [esp], eax
call fcn.004f2240
mov eax, dword [0x860560]
mov ecx, dword [esp + 4]
test eax, eax
jne 0x4f8bd6
mov ebx, dword [esp + 0x11c]
mov ebp, dword [esp + 0x124]
jmp 0x4f8bf2
call fcn.00467c50
mov dword [edi], ecx
mov ebx, dword [esp + 0x11c]
mov ebp, dword [esp + 0x124]
mov esi, dword [ebp + ebx*4]
mov dword [edi + 4], esi
mov dword [ebp + ebx*4], ecx
mov ebp, dword [esp + 0x78]
mov esi, dword [esp + 0x124]
mov edi, dword [esp + 0xa8]
mov ebx, dword [esp + 0x120]
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x10c]
jmp 0x4f8d39
add esp, 0xf4
ret
mov ecx, dword [esp + 0xf8]
mov dword [esp], ecx
mov ecx, dword [esp + 0xfc]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x100]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], eax
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], esi
call fcn.004f83c0
add esp, 0xf4
ret
nop
mov eax, dword [esp + 0xfc]
test eax, eax
je 0x4f8c96
mov ecx, dword [esp + 0xf8]
mov dword [esp], ecx
shl eax, 2
mov dword [esp + 4], eax
call fcn.00468410
add esp, 0xf4
ret
mov eax, dword [esp + 0xf8]
mov dword [esp], eax
mov ecx, dword [esp + 0xfc]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x100]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0xe0]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x98]
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x74]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0xc4]
mov dword [esp + 0x18], ebx
call fcn.004f0a40
mov eax, dword [esp + 0x120]
mov ecx, dword [esp + 0x110]
mov edx, dword [esp + 0x12c]
mov ebx, dword [esp + 0x10c]
mov ebp, dword [esp + 0xa8]
mov esi, dword [esp + 0x104]
mov edi, dword [esp + 0x11c]
mov eax, ecx
mov ecx, edx
mov edx, ebx
mov ebx, dword [esp + 0x120]
mov esi, dword [esp + 0x124]
mov edi, ebp
mov ebp, dword [esp + 0xc4]
cmp ebp, edi
jle 0x4f9161
sub ebp, edi
mov ebx, dword [esp + 0xc8]
cmp ebx, ebp
jb 0x4f9ab0
mov dword [esp + 0xc4], ebp
sub edx, ebp
mov dword [esp + 0x88], edx
neg edx
shl ebp, 2
sar edx, 0x1f
and ebp, edx
mov edx, edi
mov edi, dword [esp + 0x11c]
mov esi, dword [esi + edi*4]
mov ecx, dword [esi + 4]
mov dword [esp + 0x6c], ecx
mov edi, dword [esp + 0xc4]
sub ebx, edi
mov dword [esp + 0x94], ebx
mov edi, dword [esp + 0x104]
add ebp, edi
mov dword [esp + 0xe8], ebp
mov edi, dword [esi]
mov dword [esp + 0xe0], edi
mov esi, dword [esi + 8]
mov dword [esp + 0x74], esi
nop
test ecx, ecx
je 0x4f8de7
mov dword [esp], edi
shl ecx, 2
mov dword [esp + 4], ecx
call fcn.00468410
mov ecx, dword [esp + 0x6c]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x94]
mov ebp, dword [esp + 0xe8]
mov esi, dword [esp + 0x74]
mov edi, dword [esp + 0xe0]
mov ebx, dword [esp + 0x9c]
lea eax, [edx + ebx]
mov esi, dword [esp + 0x88]
cmp esi, eax
jb 0x4f9aa7
lea ecx, [edx - 1]
cmp ecx, eax
ja 0x4f9a9c
mov dword [esp + 0x80], ecx
sub esi, edx
inc esi
mov dword [esp + 0xc0], esi
shl ecx, 2
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ecx
add esi, ebp
mov ebp, dword [esp + 0x80]
cmp ebx, ebp
jb 0x4f9a93
mov dword [esp + 0xbc], ecx
mov dword [esp + 0xf0], esi
mov dword [esp], edi
mov eax, dword [esp + 0x6c]
mov dword [esp + 4], eax
mov ebp, dword [esp + 0x74]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
lea esi, [ebx + 1]
mov dword [esp + 0x10], esi
mov esi, dword [esp + 0xc0]
mov dword [esp + 0x14], esi
sub ebx, edx
mov esi, dword [esp + 0x118]
sub esi, edx
inc esi
mov dword [esp + 0xb8], esi
inc ebx
mov dword [esp + 0xb4], ebx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ecx
mov ecx, dword [esp + 0x110]
add esi, ecx
mov dword [esp + 0xec], esi
mov dword [esp + 0x18], esi
mov dword [esp + 0x1c], ebx
mov ebx, dword [esp + 0xb8]
mov dword [esp + 0x20], ebx
mov ebx, dword [esp + 0x11c]
inc ebx
mov dword [esp + 0x24], ebx
mov ebx, dword [esp + 0x120]
mov dword [esp + 0x28], ebx
mov esi, dword [esp + 0x124]
mov dword [esp + 0x2c], esi
mov esi, dword [esp + 0x128]
mov dword [esp + 0x30], esi
mov esi, dword [esp + 0x12c]
mov dword [esp + 0x34], esi
call fcn.004f8a00
nop
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x6c]
jmp 0x4f97f9
mov edx, dword [esp + 0x74]
cmp ecx, edx
ja 0x4f9a8e
mov dword [esp + 0x98], ecx
mov ebx, dword [esp + 0x120]
mov ebp, dword [ebx + 8]
mov esi, dword [esp + 0x9c]
lea edi, [esi + esi*2]
cmp ebp, edi
jl 0x4f8f4b
jb 0x4f9a85
mov ebx, dword [ebx]
mov dword [esp + 0x44], ebp
mov ebp, ebx
mov ebx, dword [esp + 0x120]
jmp 0x4f8fc5
cmp edi, 1
jne 0x4f8f79
mov dword [esp + 0xb0], 0
mov edi, 1
lea ebp, [esp + 0xb0]
mov ebp, 1
mov dword [esp + 0x44], ebp
lea ebp, [esp + 0xb0]
jmp 0x4f8fc5
mov dword [esp + 0x50], edi
lea eax, [0x60d8c0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea ecx, [esi + esi*2 + 4]
mov dword [esp + 0x44], ecx
mov dword [esp + 8], ecx
call fcn.0044da60
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x74]
mov esi, dword [esp + 0x9c]
mov edi, dword [esp + 0x50]
mov ebp, ebx
mov ebx, dword [esp + 0x120]
nop
test edi, edi
je 0x4f9001
mov dword [esp + 0x3c], edi
mov dword [esp + 0xd0], ebp
mov dword [esp], ebp
shl edi, 2
mov dword [esp + 4], edi
call fcn.00468410
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0x98]
mov edx, dword [esp + 0x74]
mov ebp, dword [esp + 0xd0]
mov edi, dword [esp + 0x3c]
mov dword [esp], ebp
mov dword [esp + 4], edi
mov ebx, dword [esp + 0x44]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x110]
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x80]
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x118]
mov dword [esp + 0x20], esi
call fcn.004f0b50
mov eax, dword [esp + 0x28]
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x2c]
mov dword [esp + 0x64], ecx
mov edx, dword [esp + 0x24]
mov dword [esp + 0xd8], edx
mov ebx, dword [esp + 0x94]
mov ebp, dword [esp + 0xe8]
xor esi, esi
jmp 0x4f9894
mov esi, ebx
jmp 0x4f99ed
mov edi, dword [esp + 0x88]
cmp ebx, edi
ja 0x4f9a26
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], edi
call fcn.004efaa0
mov eax, dword [esp + 0x18]
test eax, eax
jg 0x4f9a0e
mov ecx, dword [esp + 0x5c]
mov edx, dword [esp + 0x88]
cmp ecx, edx
ja 0x4f9a09
mov eax, dword [esp + 0xe8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0xd8]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0x64]
mov dword [esp + 0x20], ebx
call fcn.004f9b30
mov eax, dword [esp + 0x24]
test eax, eax
jbe 0x4f8c9d
mov edx, dword [esp + 0x5c]
mov ecx, dword [esp + 0x94]
cmp edx, ecx
ja 0x4f9a02
mov ebx, dword [esp + 0x88]
sub ebx, edx
sub ecx, edx
mov ebp, ebx
neg ebx
shl edx, 2
sar ebx, 0x1f
and ebx, edx
mov edx, dword [esp + 0xe8]
add edx, ebx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], eax
call fcn.004f9ba0
jmp 0x4f8c9d
mov ebp, dword [esp + 0x11c]
mov esi, dword [esi + ebp*4]
mov ecx, dword [esi + 4]
mov dword [esp + 0x68], ecx
mov ebx, dword [esi + 8]
mov dword [esp + 0x70], ebx
mov esi, dword [esi]
mov dword [esp + 0xdc], esi
nop
test ecx, ecx
je 0x4f91c1
mov dword [esp], esi
shl ecx, 2
mov dword [esp + 4], ecx
call fcn.00468410
mov eax, dword [esp + 0x110]
mov ecx, dword [esp + 0x68]
mov edx, dword [esp + 0x10c]
mov ebx, dword [esp + 0x70]
mov ebp, dword [esp + 0x11c]
mov esi, dword [esp + 0xdc]
mov edi, dword [esp + 0xa8]
lea ebp, [edi - 1]
mov ebx, dword [esp + 0xc8]
cmp ebx, ebp
jb 0x4f97ef
mov dword [esp + 0x7c], ebp
sub edx, edi
sub ebx, edi
inc edx
mov dword [esp + 0x84], edx
shl ebp, 2
mov dword [esp + 0xc4], ebp
neg edx
sar edx, 0x1f
and edx, ebp
mov ebp, dword [esp + 0x104]
add edx, ebp
inc ebx
mov dword [esp + 0x90], ebx
jmp 0x4f920f
dec ebx
mov ebp, dword [esp + 0x104]
test ebx, ebx
jle 0x4f9222
mov ebp, dword [edx + ebx*4 - 4]
test ebp, ebp
je 0x4f9207
mov ebp, dword [esp + 0x104]
mov ebp, dword [esp + 0x84]
cmp ebx, ebp
ja 0x4f97e6
mov edi, dword [esp + 0x9c]
mov ebp, dword [esp + 0x7c]
cmp edi, ebp
jb 0x4f97dd
mov dword [esp + 0xe4], edx
mov dword [esp], esi
mov dword [esp + 4], ecx
mov ebp, dword [esp + 0x70]
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0x84]
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x118]
mov edx, dword [esp + 0xa8]
sub ebx, edx
sub edi, edx
inc ebx
mov dword [esp + 0xc0], ebx
inc edi
mov dword [esp + 0xbc], edi
neg ebx
sar ebx, 0x1f
mov edx, dword [esp + 0xc4]
and ebx, edx
add ebx, eax
mov dword [esp + 0xf0], ebx
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], edi
mov edx, dword [esp + 0xc0]
mov dword [esp + 0x20], edx
mov edx, dword [esp + 0x11c]
inc edx
mov dword [esp + 0x24], edx
mov edx, dword [esp + 0x120]
mov dword [esp + 0x28], edx
mov edi, dword [esp + 0x124]
mov dword [esp + 0x2c], edi
mov edi, dword [esp + 0x128]
mov dword [esp + 0x30], edi
mov edi, dword [esp + 0x12c]
mov dword [esp + 0x34], edi
call fcn.004f8a00
nop
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x68]
jmp 0x4f9305
dec ecx
test ecx, ecx
jle 0x4f9311
mov ebx, dword [eax + ecx*4 - 4]
test ebx, ebx
je 0x4f9304
mov edx, dword [esp + 0x70]
cmp ecx, edx
ja 0x4f97d8
mov dword [esp + 0x8c], ecx
mov ebx, dword [esp + 0x120]
mov ebp, dword [ebx + 8]
mov esi, dword [esp + 0x9c]
lea edi, [esi + esi*2]
cmp ebp, edi
jl 0x4f9346
jb 0x4f97cf
mov ebx, dword [ebx]
jmp 0x4f93a9
cmp edi, 1
jne 0x4f9369
mov dword [esp + 0xac], 0
mov edi, 1
lea ebx, [esp + 0xac]
mov ebp, 1
jmp 0x4f93a9
mov dword [esp + 0x4c], edi
lea eax, [0x60d8c0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esi + esi*2 + 4]
mov dword [esp + 0x40], eax
mov dword [esp + 8], eax
call fcn.0044da60
mov ebx, dword [esp + 0xc]
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x70]
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x40]
nop
test edi, edi
je 0x4f93ed
mov dword [esp + 0x38], edi
mov dword [esp + 0xcc], ebx
mov dword [esp + 0x40], ebp
mov dword [esp], ebx
shl edi, 2
mov dword [esp + 4], edi
call fcn.00468410
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x8c]
mov edx, dword [esp + 0x70]
mov ebx, dword [esp + 0xcc]
mov ebp, dword [esp + 0x40]
mov edi, dword [esp + 0x38]
mov dword [esp], ebx
mov dword [esp + 4], edi
mov dword [esp + 8], ebp
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x110]
mov dword [esp + 0x18], ebx
mov ebp, dword [esp + 0x7c]
mov dword [esp + 0x1c], ebp
mov esi, dword [esp + 0x118]
mov dword [esp + 0x20], esi
call fcn.004f0b50
mov eax, dword [esp + 0x24]
mov dword [esp + 0xd4], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x58], ecx
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x60], edx
mov ebx, dword [esp + 0x104]
mov ebp, dword [esp + 0xc8]
xor esi, esi
jmp 0x4f947b
mov edi, dword [esp + 0xa0]
lea esi, [edi + 1]
mov ebx, dword [esp + 0x104]
mov ebp, dword [esp + 0xc8]
mov eax, dword [esp + 0xd4]
mov ecx, dword [esp + 0x58]
mov edx, dword [esp + 0x60]
cmp esi, 2
jge 0x4f95fc
mov edi, ebp
jmp 0x4f97ac
mov edi, dword [esp + 0xc8]
mov edi, dword [esp + 0x10c]
cmp edi, ebp
jb 0x4f97c6
mov dword [esp + 0xa0], esi
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edi
call fcn.004efaa0
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4f9454
mov eax, dword [esp + 0xdc]
mov dword [esp], eax
mov ecx, dword [esp + 0x8c]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x70]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 1
call fcn.004f9ba0
mov edx, dword [esp + 0x60]
mov ecx, dword [esp + 0x7c]
cmp edx, ecx
jb 0x4f97c1
mov eax, dword [esp + 0xd4]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x110]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ebp, dword [esp + 0x118]
mov dword [esp + 0x20], ebp
call fcn.004f9b30
mov eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x7c]
cmp eax, ecx
jle 0x4f95a9
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0xa8]
sub edx, ebx
sub eax, ebx
inc edx
mov edi, edx
neg edx
sar edx, 0x1f
mov ebx, dword [esp + 0xc4]
and edx, ebx
mov ebx, dword [esp + 0xd4]
add edx, ebx
mov dword [esp], edx
inc eax
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ecx
call fcn.004f9ba0
mov eax, dword [esp + 0xe4]
mov dword [esp], eax
mov ecx, dword [esp + 0x90]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x84]
mov dword [esp + 8], edx
mov ebx, dword [esp + 0xf0]
mov dword [esp + 0xc], ebx
mov ebp, dword [esp + 0xbc]
mov dword [esp + 0x10], ebp
mov esi, dword [esp + 0xc0]
mov dword [esp + 0x14], esi
mov dword [esp + 0x18], 0
call fcn.004f0a40
jmp 0x4f9454
mov esi, ebp
jmp 0x4f9601
dec ebp
test ebp, ebp
jle 0x4f960d
mov edi, dword [ebx + ebp*4 - 4]
test edi, edi
je 0x4f9600
mov edi, dword [esp + 0x10c]
cmp edi, ebp
jb 0x4f979b
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], ebp
mov dword [esp + 0x14], edi
call fcn.004efaa0
mov eax, dword [esp + 0x18]
test eax, eax
jg 0x4f9783
mov edx, dword [esp + 0x10c]
mov ecx, dword [esp + 0x58]
cmp edx, ecx
jb 0x4f977e
mov eax, dword [esp + 0x104]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0xd4]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ebx, dword [esp + 0x60]
mov dword [esp + 0x20], ebx
call fcn.004f9b30
mov eax, dword [esp + 0x24]
test eax, eax
jbe 0x4f96f0
mov ecx, dword [esp + 0xc8]
mov edx, dword [esp + 0x58]
cmp ecx, edx
jb 0x4f9777
mov ebx, dword [esp + 0x10c]
sub ebx, edx
sub ecx, edx
mov ebp, ebx
neg ebx
shl edx, 2
sar ebx, 0x1f
and ebx, edx
mov edx, dword [esp + 0x104]
add edx, ebx
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], ebp
mov dword [esp + 0x18], eax
call fcn.004f9ba0
mov eax, dword [esp + 0x1c]
test eax, eax
ja 0x4f975f
nop
mov eax, dword [esp + 0xdc]
mov ecx, dword [esp + 0x8c]
jmp 0x4f9706
dec ecx
test ecx, ecx
jle 0x4f9712
mov ebx, dword [eax + ecx*4 - 4]
test ebx, ebx
je 0x4f9705
mov edx, dword [esp + 0x70]
cmp ecx, edx
ja 0x4f975a
mov ebx, dword [esp + 0xf8]
mov dword [esp], ebx
mov ebx, dword [esp + 0xfc]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x100]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 0
call fcn.004f0a40
add esp, 0xf4
ret
call fcn.00467cf0
lea eax, [0x60d940]
mov dword [esp], eax
lea eax, [0x689998]
mov dword [esp + 4], eax
call fcn.00438060
mov eax, edx
call fcn.00467d10
call fcn.00467cf0
lea eax, [0x60d940]
mov dword [esp], eax
lea eax, [0x689998]
mov dword [esp + 4], eax
call fcn.00438060
mov ecx, ebp
mov edx, edi
call fcn.00467cf0
dec ebp
mov edi, dword [esp + 0xc8]
test ebp, ebp
jle 0x4f9492
mov edi, dword [ebx + ebp*4 - 4]
test edi, edi
je 0x4f97a4
jmp 0x4f948b
call fcn.00467cf0
mov ecx, ebp
mov edx, edi
call fcn.00467cf0
mov ecx, edi
mov edx, ebp
call fcn.00467cf0
call fcn.00467cf0
mov eax, ebp
mov ecx, edi
call fcn.00467d10
mov ecx, ebx
mov edx, ebp
call fcn.00467cf0
mov eax, ebp
mov ecx, ebx
call fcn.00467d10
dec ecx
test ecx, ecx
jle 0x4f8f09
mov ebx, dword [eax + ecx*4 - 4]
test ebx, ebx
je 0x4f97f8
jmp 0x4f8f09
mov eax, dword [esp + 0xf0]
mov dword [esp], eax
mov ecx, dword [esp + 0xa8]
sub edx, ecx
inc edx
mov dword [esp + 4], edx
mov edx, dword [esp + 0xc0]
mov dword [esp + 8], edx
mov ebp, dword [esp + 0xec]
mov dword [esp + 0xc], ebp
mov esi, dword [esp + 0xb4]
mov dword [esp + 0x10], esi
mov edi, dword [esp + 0xb8]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], 0
call fcn.004f0a40
mov eax, dword [esp + 0xa4]
lea esi, [eax + 1]
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0xe8]
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x94]
mov ebp, dword [esp + 0xe8]
cmp esi, 2
jge 0x4f9072
mov dword [esp + 0xa4], esi
nop
mov edi, ebx
jmp 0x4f9a37
mov esi, dword [esp + 0xa4]
mov esi, dword [esp + 0x88]
cmp ebx, esi
ja 0x4f9a7c
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], ebx
mov dword [esp + 0x14], esi
call fcn.004efaa0
mov eax, dword [esp + 0x18]
test eax, eax
jle 0x4f9a4c
mov eax, dword [esp + 0xe0]
mov dword [esp], eax
mov ecx, dword [esp + 0x98]
mov dword [esp + 4], ecx
mov edx, dword [esp + 0x74]
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov dword [esp + 0x18], 1
call fcn.004f9ba0
mov edx, dword [esp + 0x64]
mov ecx, dword [esp + 0x80]
cmp edx, ecx
jb 0x4f9a77
mov eax, dword [esp + 0xd8]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], edx
mov ebx, dword [esp + 0x110]
mov dword [esp + 0x18], ebx
mov dword [esp + 0x1c], ecx
mov ebp, dword [esp + 0x118]
mov dword [esp + 0x20], ebp
call fcn.004f9b30
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x80]
cmp eax, ecx
jle 0x4f99d8
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x64]
mov ebx, dword [esp + 0xa8]
sub edx, ebx
sub eax, ebx
inc edx
mov edi, edx
neg edx
sar edx, 0x1f
mov ebp, dword [esp + 0xbc]
and edx, ebp
mov ebp, dword [esp + 0xd8]
add edx, ebp
mov dword [esp], edx
inc eax
mov dword [esp + 4], eax
mov dword [esp + 8], edi
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ecx
call fcn.004f9ba0
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x94]
cmp edx, ecx
jae 0x4f980e
jmp 0x4f9a6e
dec ebx
test ebx, ebx
jle 0x4f9079
mov edi, dword [ebp + ebx*4 - 4]
test edi, edi
je 0x4f99ec
jmp 0x4f9079
mov eax, edx
call fcn.00467d10
call fcn.00467cf0
lea eax, [0x60d940]
mov dword [esp], eax
lea eax, [0x689998]
mov dword [esp + 4], eax
call fcn.00438060
mov ecx, ebx
mov edx, edi
call fcn.00467cf0
dec ebx
mov esi, dword [esp + 0xa4]
test ebx, ebx
jle 0x4f98b3
mov esi, dword [ebp + ebx*4 - 4]
test esi, esi
je 0x4f9a2f
jmp 0x4f98ac
mov eax, dword [esp + 0x5c]
mov ecx, dword [esp + 0x64]
mov edx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x94]
mov ebp, dword [esp + 0xe8]
jmp 0x4f9072
mov eax, ecx
mov ecx, edx
call fcn.00467d10
call fcn.00467cf0
mov ecx, ebx
mov edx, esi
call fcn.00467cf0
mov ecx, edi
mov edx, ebp
call fcn.00467cf0
call fcn.00467cf0
mov eax, ebp
mov ecx, ebx
call fcn.00467d10
mov edx, eax
mov eax, ecx
mov ecx, edx
call fcn.00467d10
mov ecx, eax
mov edx, esi
call fcn.00467cf0
mov eax, ebp
mov ecx, ebx
call fcn.00467d10
call fcn.00467cf0
mov eax, ebx
mov ecx, esi
call fcn.00467cb0
mov ecx, edi
mov edx, esi
call fcn.00467cf0
mov ecx, ebp
call fcn.00467cf0
nop
call fcn.00466840
jmp fcn.004f8a00