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

Disassembly:
sub esp, 0x64
push ebx
push ebp
mov ebp, dword [esp + 0x74]
cmp dword [ebp], 0x50
push esi
push edi
jb 0xf88a2
mov eax, dword [ebp + 0x50]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x10]
mov ebx, dword [ebp + 0x40]
mov dword [esp + 0x38], eax
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x40], eax
mov eax, dword [ebp + 0x20]
mov dword [esp + 0x10], ecx
mov ecx, dword [ebp + 0x18]
mov dword [esp + 0x14], eax
mov eax, dword [ebp + 0x2c]
mov dword [esp + 0x4c], edx
mov edx, dword [ebp + 0x1c]
mov dword [esp + 0x3c], ecx
mov ecx, dword [ebp + 0x24]
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x38]
mov dword [esp + 0x50], edx
mov edx, dword [ebp + 0x28]
mov dword [esp + 0x1c], ecx
mov ecx, dword [ebp + 0x30]
mov dword [esp + 0x2c], eax
mov eax, dword [ebp + 0x48]
mov dword [esp + 0x28], edx
mov edx, dword [ebp + 0x34]
mov dword [esp + 0x44], ecx
mov ecx, dword [ebp + 0x3c]
mov dword [esp + 0x20], eax
mov eax, dword [0x4e73e0]
test eax, eax
mov dword [esp + 0x48], edx
mov edx, dword [ebp + 0x44]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0x4c]
mov dword [esp + 0x7c], edx
mov dword [esp + 0x18], ecx
mov dword [ebp + 0xc], 0
je 0xf88a2
mov eax, dword [eax + 0x2520]
test eax, eax
je 0xf88a2
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0x124]
test eax, eax
je 0xf88a2
mov eax, dword [0x4e73e0]
mov ecx, dword [eax + 0x2520]
lea edi, [eax + 0xb88]
mov eax, dword [ecx]
call dword [eax + 0x124]
mov esi, eax
test esi, esi
mov dword [esp + 0x34], esi
je 0xf88a2
test byte [esi + 0x4c90], 2
je 0xf8672
mov edx, dword [esi + 0x4c88]
test edx, edx
je 0xf88a2
call fcn.000fa810
lea ecx, [eax*8]
sub ecx, eax
shl ecx, 5
mov edi, dword [ecx + edx + 0x10]
call fcn.00074390
cmp edi, eax
jne 0xf88a2
mov ecx, dword [esp + 0x10]
test cl, 4
je 0xf81c7
mov eax, dword [esi + 0x4d50]
test eax, eax
je 0xf81bb
cmp dword [eax + 0x18], 0
je 0xf81bb
mov edi, esi
call fcn.000fd0d0
mov ecx, dword [esp + 0x10]
mov dword [esi + 0x4d70], 0
jmp 0xf8229
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x78]
call fcn.000746a0
test eax, eax
je 0xf88a2
mov ecx, dword [eax + 0xdc]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x14]
lea edi, [edx + eax]
cmp edi, dword [ecx + 4]
ja 0xf88a2
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x1c]
add eax, edx
cmp eax, dword [ecx + 8]
ja 0xf88a2
mov ecx, dword [esp + 0x1c]
mov edx, dword [esi + 0x4c88]
push eax
mov eax, dword [esp + 0x18]
push ecx
push edi
push eax
call fcn.000fa810
call fcn.000fcaf0
mov ecx, dword [esp + 0x10]
test ch, 0x10
je 0xf8269
mov edx, dword [esi + 0x4c88]
call fcn.000fa810
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [esp + 0x10]
shr eax, 0xd
not eax
and eax, 1
push eax
mov eax, dword [esp + 0x40]
shl ecx, 5
mov ecx, dword [ecx + edx + 8]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x48]
push eax
call dword [edx + 8]
mov ecx, dword [esp + 0x10]
test cl, 0x20
mov eax, ecx
je 0xf82b2
and eax, 0x10
mov dword [esp + 0x54], eax
je 0xf84e6
mov edx, dword [esi + 0x4c88]
call fcn.000fae10
test eax, eax
je 0xf88a2
test ebx, ebx
jl 0xf88a2
mov eax, dword [esp + 0x7c]
test eax, eax
jl 0xf88a2
push eax
push edx
mov ecx, ebx
call fcn.000fc870
jmp 0xf84e6
and eax, 0x10
mov dword [esp + 0x54], eax
je 0xf84e6
mov edx, dword [esi + 0x4c88]
test edx, edx
je 0xf82d9
call fcn.000fae10
test eax, eax
je 0xf82d9
mov eax, 1
jmp 0xf82db
xor eax, eax
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0xf88a2
test eax, eax
je 0xf88a2
mov edx, dword [esp + 0x78]
mov eax, dword [edx + 0xf84]
cmp ecx, dword [eax + 0x1c]
jae 0xf88a2
mov eax, dword [eax + 0x14]
mov eax, dword [eax + ecx*8]
test eax, eax
mov dword [esp + 0x58], eax
je 0xf88a2
mov eax, dword [eax + 0xdc]
mov ecx, dword [eax + 0x3c]
and ecx, 0xff
cmp ecx, 4
je 0xf8344
mov edx, dword [0x4e73e0]
test byte [edx + 0x2485], 0x40
je 0xf88a2
cmp ecx, 3
jne 0xf88a2
mov edx, dword [esp + 0x2c]
mov edi, dword [esp + 0x44]
mov ecx, dword [eax + 4]
mov eax, dword [eax + 8]
add edi, edx
cmp edi, ecx
mov dword [esp + 0x2c], edi
ja 0xf88a2
mov edx, dword [esp + 0x30]
mov edi, dword [esp + 0x48]
add edi, edx
cmp edi, eax
mov dword [esp + 0x30], edi
ja 0xf88a2
mov edx, dword [esp + 0x28]
mov edi, dword [esp + 0x14]
add edi, edx
cmp edi, ecx
mov dword [esp + 0x5c], edi
ja 0xf88a2
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
add ecx, edx
cmp ecx, eax
mov dword [esp + 0x60], ecx
ja 0xf88a2
mov edi, dword [esp + 0x10]
and edi, 0x200
je 0xf83f8
test byte [esi + 0x4bcc], 2
lea edx, [esi + 0x4bcc]
jne 0xf83f8
mov eax, dword [0x5271fc]
mov eax, dword [eax + 0xb50]
lea ecx, [eax*8]
sub ecx, eax
mov eax, dword [esi + 0x4c88]
shl ecx, 5
mov eax, dword [ecx + eax + 0xc]
and eax, 1
call fcn.00095c40
test ah, 0xff
je 0xf83f8
push 1
mov esi, edx
call fcn.001555e0
mov esi, dword [esp + 0x34]
test edi, edi
jne 0xf8415
test byte [esi + 0x4bcc], 2
lea eax, [esi + 0x4bcc]
je 0xf8415
mov ecx, 1
call fcn.001556a0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x18]
mov edx, dword [esp + 0x7c]
add edx, ecx
test eax, eax
lea edi, [eax + ebx]
mov dword [esp + 0x70], edx
je 0xf84e6
test ecx, ecx
je 0xf84e6
mov eax, dword [esp + 0x58]
call fcn.000df5d0
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x48]
mov esi, eax
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x3c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x40]
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x24]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x2c]
sub esp, 0x10
mov eax, esp
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 4], edx
mov edx, dword [esp + 0x80]
or dword [esi + 0x250], 1
mov dword [eax + 8], ecx
mov ecx, dword [esp + 0x9c]
mov dword [eax + 0xc], edx
mov edx, dword [esp + 0x90]
sub esp, 0x10
mov eax, esp
mov dword [eax], ebx
mov dword [eax + 4], ecx
mov ecx, dword [esp + 0x70]
mov dword [eax + 8], edi
mov dword [eax + 0xc], edx
mov eax, dword [esp + 0x6c]
mov edx, dword [esp + 0x80]
push eax
mov eax, dword [esp + 0x80]
push ecx
mov ecx, dword [esp + 0x6c]
push edx
mov edx, dword [ecx + 0x4c88]
push eax
mov eax, dword [esp + 0x50]
push esi
push edx
call fcn.000fc110
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov esi, dword [esp + 0x34]
cmp dword [esp + 0x54], 0
jne 0xf8eb7
mov edx, dword [esi + 0x4c88]
call fcn.000fae10
test eax, eax
je 0xf852c
test byte [esi + 0x4bcc], 2
lea eax, [esi + 0x4bcc]
je 0xf8519
mov ecx, 1
call fcn.001556a0
mov ecx, dword [esp + 0x34]
mov esi, dword [ecx + 0x4c88]
call fcn.000fa870
mov esi, dword [esp + 0x34]
mov eax, dword [esi + 0x4d50]
test eax, eax
je 0xf8eb7
cmp dword [eax + 0x18], 0
je 0xf8eb7
call fcn.00074390
cmp dword [esi + 0x4d7c], eax
jne 0xf8eb7
mov edx, dword [esp + 0x78]
mov eax, dword [edx + 0xf84]
mov ecx, dword [esp + 0x38]
cmp ecx, dword [eax + 0x1c]
jae 0xf88a2
mov eax, dword [eax + 0x14]
mov eax, dword [eax + ecx*8]
test eax, eax
je 0xf88a2
mov ecx, dword [eax + 0xdc]
mov edx, dword [ecx + 0x3c]
and edx, 0xff
cmp edx, 4
je 0xf85aa
mov esi, dword [0x4e73e0]
test byte [esi + 0x2485], 0x40
je 0xf88a2
cmp edx, 3
jne 0xf88a2
mov edx, dword [esp + 0x14]
mov esi, dword [esp + 0x28]
lea ebx, [esi + edx]
cmp ebx, dword [ecx + 4]
ja 0xf88a2
mov edx, dword [esp + 0x24]
mov esi, dword [esp + 0x1c]
lea edi, [edx + esi]
cmp edi, dword [ecx + 8]
ja 0xf88a2
cmp dword [esp + 0x20], 0
je 0xf8eb7
cmp dword [esp + 0x18], 0
je 0xf8eb7
call fcn.000df5d0
mov ecx, dword [esp + 0x1c]
sub esp, 0x10
mov edx, esp
mov esi, eax
mov eax, dword [esp + 0x24]
mov dword [edx], eax
mov dword [edx + 4], ecx
mov dword [edx + 8], ebx
mov dword [edx + 0xc], edi
sub esp, 0x10
mov edx, esp
mov dword [edx], eax
mov dword [edx + 4], ecx
mov dword [edx + 8], ebx
sub esp, 0x10
mov dword [edx + 0xc], edi
mov edx, esp
mov dword [edx], eax
mov eax, dword [esp + 0x6c]
mov dword [edx + 4], ecx
mov ecx, dword [esp + 0x70]
push eax
mov eax, dword [esp + 0x80]
mov dword [edx + 8], ebx
push ecx
mov ecx, dword [esp + 0x6c]
mov dword [edx + 0xc], edi
mov edx, dword [esp + 0x88]
push edx
mov edx, dword [ecx + 0x4c88]
push eax
mov eax, dword [esp + 0x50]
push esi
push edx
call fcn.000fc110
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov dword [ebp + 4], 0
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 8
call fcn.00074390
cmp dword [edi + 0x6c], eax
jne 0xf88a2
test byte [esp + 0x10], 4
je 0xf86a4
test byte [edi], 8
je 0xf869e
mov ecx, dword [0x4e73e0]
add ecx, 0xb88
push ecx
call fcn.000981c0
or byte [edi + 3], 8
jmp 0xf870a
mov ecx, dword [esp + 0x38]
mov eax, dword [esp + 0x78]
call fcn.000746a0
test eax, eax
je 0xf88a2
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0x28]
mov eax, dword [eax + 0xdc]
add ecx, edx
cmp ecx, dword [eax + 4]
ja 0xf88a2
mov edx, dword [esp + 0x24]
mov ecx, dword [esp + 0x1c]
lea esi, [edx + ecx]
cmp esi, dword [eax + 8]
ja 0xf88a2
mov eax, dword [esp + 0x14]
and byte [edi + 3], 0xf7
mov dword [edi + 0x7b4], ecx
mov ecx, dword [esp + 0x28]
mov dword [edi + 0x7b0], eax
mov dword [edi + 0x7b8], ecx
mov dword [edi + 0x7bc], edx
mov eax, dword [esp + 0x10]
test ah, 0x10
je 0xf8737
mov edx, dword [esp + 0x3c]
shr eax, 0xd
not eax
and eax, 1
push eax
mov eax, dword [esp + 0x44]
push edx
push eax
mov eax, dword [0x4e73e0]
lea ecx, [eax + 0xb88]
push ecx
call fcn.00098800
mov edx, dword [0x4e73e0]
mov edx, dword [edx + 0x1404]
and edx, 0x300000
mov ecx, 0
setne cl
cmp edx, 0x100000
je 0xf8765
cmp edx, 0x300000
je 0xf8765
xor eax, eax
jmp 0xf876a
mov eax, 1
test ecx, ecx
mov dword [esp + 0x54], eax
je 0xf88c8
test eax, eax
je 0xf8788
mov eax, dword [ebp + 0x4c]
mov ecx, dword [ebp + 0x48]
mov dword [esp + 0x20], eax
mov dword [esp + 0x18], ecx
mov ecx, dword [ebp + 0x40]
mov eax, dword [ebp + 0x48]
mov esi, dword [ebp + 0x44]
add eax, ecx
mov ecx, dword [ebp + 0x4c]
add ecx, esi
cmp edx, 0x5a
jne 0xf87df
mov ebx, esi
mov esi, dword [0x5271fc]
mov ecx, dword [esi + 0x168]
sub ecx, eax
mov dword [esp + 0x7c], ecx
jns 0xf888b
mov edx, dword [esp + 0x18]
add ecx, edx
mov eax, ecx
imul eax, dword [esp + 0x2c]
xor edx, edx
div dword [esp + 0x18]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x2c], eax
jmp 0xf8887
cmp edx, 0xb4
jne 0xf8848
mov edx, dword [0x5271fc]
mov ebx, dword [edx + 0x168]
mov esi, dword [edx + 0x16c]
sub ebx, eax
sub esi, ecx
test ebx, ebx
mov dword [esp + 0x7c], esi
jge 0xf8820
mov ecx, dword [esp + 0x20]
add ebx, ecx
mov eax, ebx
imul eax, dword [esp + 0x2c]
xor edx, edx
div ecx
mov dword [esp + 0x20], ebx
xor ebx, ebx
mov dword [esp + 0x2c], eax
test esi, esi
jge 0xf8881
mov esi, dword [esp + 0x18]
mov eax, dword [esp + 0x7c]
lea ecx, [esi + eax]
mov eax, ecx
imul eax, dword [esp + 0x30]
xor edx, edx
div esi
mov dword [esp + 0x18], ecx
mov dword [esp + 0x7c], 0
jmp 0xf887d
cmp edx, 0x10e
jne 0xf8881
mov eax, dword [0x5271fc]
mov ebx, dword [eax + 0x16c]
sub ebx, ecx
mov edx, dword [ebp + 0x40]
mov dword [esp + 0x7c], edx
jns 0xf8881
mov ecx, dword [esp + 0x20]
add ebx, ecx
mov eax, ebx
imul eax, dword [esp + 0x30]
xor edx, edx
div ecx
mov dword [esp + 0x20], ebx
xor ebx, ebx
mov dword [esp + 0x30], eax
mov esi, dword [0x5271fc]
mov ecx, dword [esp + 0x7c]
cmp dword [esp + 0x54], 0
je 0xf88b8
cmp ebx, dword [esi + 0x16c]
jg 0xf88a2
cmp ecx, dword [esi + 0x168]
jle 0xf88e1
mov dword [ebp + 4], 0x80070057
mov eax, 1
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x64
ret 8
cmp ebx, dword [esi + 0x168]
jg 0xf88a2
cmp ecx, dword [esi + 0x16c]
jmp 0xf88df
mov eax, dword [0x5271fc]
cmp ebx, dword [eax + 0x168]
jg 0xf88a2
mov ecx, dword [esp + 0x7c]
cmp ecx, dword [eax + 0x16c]
jg 0xf88a2
mov al, byte [esp + 0x10]
test al, 0x20
mov edx, dword [esp + 0x7c]
mov dword [edi + 0xdc], ebx
mov dword [edi + 0xe0], edx
je 0xf8920
test al, 0x10
je 0xf8c6e
test byte [edi], 4
je 0xf88a2
test ebx, ebx
jl 0xf88a2
mov eax, edx
test eax, eax
jl 0xf88a2
push ebx
mov ecx, 0xbb00b010
call fcn.00155540
jmp 0xf8c6e
test al, 0x10
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
mov dword [edi + 0xe4], ecx
mov dword [edi + 0xe8], edx
je 0xf8c6e
mov ecx, dword [esp + 0x38]
test ecx, ecx
je 0xf88a2
test byte [edi], 4
je 0xf88a2
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0xf84]
cmp ecx, dword [eax + 0x1c]
jae 0xf88a2
mov edx, dword [eax + 0x14]
mov eax, dword [edx + ecx*8]
test eax, eax
mov dword [esp + 0x34], eax
je 0xf88a2
mov eax, dword [eax + 0xdc]
mov ecx, dword [eax + 0x3c]
and ecx, 0xff
cmp ecx, 4
je 0xf89a6
mov edx, dword [0x4e73e0]
test byte [edx + 0x2485], 0x40
je 0xf88a2
cmp ecx, 3
jne 0xf88a2
mov ecx, dword [eax + 4]
mov esi, dword [esp + 0x2c]
mov edx, dword [esp + 0x44]
mov eax, dword [eax + 8]
add edx, esi
cmp edx, ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x54], eax
ja 0xf88a2
mov ebx, dword [esp + 0x30]
mov edx, dword [esp + 0x48]
add edx, ebx
cmp edx, eax
ja 0xf88a2
mov eax, dword [esp + 0x14]
mov edx, dword [esp + 0x28]
add edx, eax
cmp edx, ecx
ja 0xf88a2
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x24]
add ecx, eax
cmp ecx, dword [esp + 0x54]
ja 0xf88a2
mov eax, dword [esp + 0x10]
and eax, 0x200
mov dword [esp + 0x7c], 0x4000df00
mov dword [esp + 0x60], eax
je 0xf8a3e
test byte [edi + 0x100], 2
lea edx, [edi + 0x100]
jne 0xf8a3e
mov eax, dword [edi + 0x74]
call fcn.00095c40
test ah, 0xff
je 0xf8a3e
push 1
mov esi, edx
call fcn.001555e0
mov esi, dword [esp + 0x2c]
cmp dword [esp + 0x60], 0
jne 0xf8a5e
test byte [edi + 0x100], 2
lea eax, [edi + 0x100]
je 0xf8a5e
mov ecx, 1
call fcn.001556a0
mov edx, dword [esp + 0x44]
mov eax, dword [esp + 0x48]
mov dword [edi + 0xac], edx
mov dword [edi + 0xb0], eax
mov eax, dword [esp + 0x14]
movzx edx, si
mov ecx, ebx
shl ecx, 0x10
or ecx, edx
mov edx, dword [esp + 0x28]
mov dword [edi + 0xbc], eax
mov eax, dword [esp + 0x24]
mov dword [edi + 0x158], ecx
mov ecx, dword [esp + 0x1c]
mov dword [edi + 0xc8], eax
mov eax, dword [0x4e73e0]
mov dword [edi + 0xc0], ecx
mov ecx, dword [esp + 0x54]
mov dword [edi + 0xc4], edx
mov edx, dword [esp + 0x5c]
add eax, 0xb88
push 0x32595559
mov dword [edi + 0xb4], esi
mov dword [edi + 0xb8], ebx
mov dword [esp + 0x64], eax
call fcn.000a2cd0
mov ecx, dword [esp + 0x20]
cmp ecx, 1
jbe 0xf8afd
lea eax, [esi - 1]
add ecx, 0xffffffff
shl eax, 0x14
xor edx, edx
div ecx
mov ecx, 0x100000
test eax, eax
mov dword [edi + 0x124], eax
jne 0xf8b08
jmp 0xf8b02
mov ecx, 0x100000
mov dword [edi + 0x124], ecx
mov esi, dword [esp + 0x18]
cmp esi, 1
mov dword [edi + 0x11c], ecx
jbe 0xf8b2e
lea eax, [ebx - 1]
shl eax, 0x14
xor edx, edx
lea ebx, [esi - 1]
div ebx
test eax, eax
mov dword [edi + 0x128], eax
jne 0xf8b34
mov dword [edi + 0x128], ecx
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x10]
mov dword [edi + 0x120], ecx
mov eax, dword [edx + 0xdc]
mov edx, dword [eax]
mov eax, dword [esp + 0x4c]
or edx, 0x10000
test bh, 1
mov dword [edi + 0x138], edx
mov dword [edi + 0x15c], eax
je 0xf8b6b
or dword [edi + 0x138], ecx
test byte [edi + 2], 0x80
je 0xf8bac
mov edx, dword [esp + 0x24]
cmp edx, 0x3e8
jbe 0xf8bac
mov ecx, dword [0x5271fc]
mov ecx, dword [ecx + 0x16c]
mov eax, ecx
sub eax, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jge 0xf8bac
mov eax, ecx
sub eax, esi
cdq
xor eax, edx
sub eax, edx
cmp eax, 0x64
jge 0xf8bac
or ebx, 8
mov dword [esp + 0x10], ebx
test bl, 1
je 0xf8bc6
test bl, 8
mov dword [esp + 0x7c], 0x4000df01
jne 0xf8bc6
mov dword [esp + 0x7c], 0x4000df0d
test bl, 2
je 0xf8bda
or dword [esp + 0x7c], 2
test bl, 8
jne 0xf8bda
or dword [esp + 0x7c], 0xc
test bl, bl
jns 0xf8bf2
mov edx, dword [esp + 0x7c]
and edx, 0xbfff20ff
or edx, 0x10000000
mov dword [esp + 0x7c], edx
test bl, 0x40
je 0xf8bfc
or dword [esp + 0x7c], 0x20
test bh, 0x20
je 0xf8c0a
and dword [edi + 0x22c], 0xfffffffe
jmp 0xf8c11
or dword [edi + 0x22c], 1
mov eax, dword [0x4e73e0]
mov esi, dword [eax + 0x20a0]
mov edx, dword [esp + 0x3c]
mov ecx, esi
or ch, 0x20
push edx
mov edx, dword [esp + 0x80]
mov dword [eax + 0x20a0], ecx
mov eax, dword [esp + 0x44]
mov ecx, dword [esp + 0x54]
push eax
mov eax, dword [esp + 0x3c]
push ecx
mov ecx, dword [esp + 0x6c]
push edx
push eax
push ecx
call fcn.0009e470
test eax, eax
mov edx, dword [0x4e73e0]
mov dword [edx + 0x20a0], esi
mov dword [edi + 0x94], 0
jne 0xf8c6e
mov dword [ebp + 0xc], 0x887601ae
test byte [esp + 0x10], 0x10
jne 0xf8eb7
cmp dword [edi + 0x94], 0
jne 0xf8cb5
test byte [edi + 0x100], 2
lea eax, [edi + 0x100]
je 0xf8c9b
mov ecx, 1
call fcn.001556a0
mov eax, dword [0x4e73e0]
add eax, 0xb88
push eax
call fcn.000a2730
mov dword [edi + 0x94], 1
test byte [edi], 8
je 0xf8eb7
mov ecx, dword [esp + 0x78]
mov eax, dword [ecx + 0xf84]
mov ecx, dword [esp + 0x38]
cmp ecx, dword [eax + 0x1c]
jae 0xf88a2
mov edx, dword [eax + 0x14]
mov esi, dword [edx + ecx*8]
test esi, esi
je 0xf88a2
mov eax, dword [esi + 0xdc]
mov ecx, dword [eax + 0x3c]
and ecx, 0xff
cmp ecx, 4
je 0xf8d13
mov edx, dword [0x4e73e0]
test byte [edx + 0x2485], 0x40
je 0xf88a2
cmp ecx, 3
jne 0xf88a2
mov edx, dword [esp + 0x28]
mov ebx, dword [esp + 0x14]
mov ecx, dword [eax + 8]
add edx, ebx
cmp edx, dword [eax + 4]
mov dword [esp + 0x60], ecx
ja 0xf88a2
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
add eax, edx
cmp eax, ecx
ja 0xf88a2
call fcn.00074390
mov ecx, dword [0x4e73e0]
call fcn.000b39b0
mov ecx, 1
xor word [edi + 0x154], cx
mov dword [esp + 0x7c], eax
movzx eax, word [edi + 0x154]
mov dword [esp + 0x50], eax
mov al, byte [esp + 0x10]
test cl, al
mov dword [esp + 0x78], 0
je 0xf8d8a
test al, 8
mov dword [esp + 0x78], ecx
jne 0xf8d8a
mov dword [esp + 0x78], 5
test al, 2
je 0xf8d9c
or dword [esp + 0x78], 2
test al, 8
jne 0xf8d9c
or dword [esp + 0x78], 4
cmp dword [edi + 0x784], 3
ja 0xf8dc2
mov ebx, dword [esp + 0x50]
mov eax, dword [esp + 0x7c]
push ecx
xor ebx, ecx
mov ecx, dword [0x4e73e0]
add ecx, 0xb88
push ecx
call fcn.0009e380
mov edx, dword [esp + 0x78]
mov eax, dword [esi + 0xdc]
mov ecx, dword [eax]
mov ebx, dword [eax + 0x60]
mov eax, dword [eax + 0x3c]
push 0x100000
push 0x100000
push edx
mov edx, dword [esi + 0x8c]
push esi
shr edx, 0xa
and edx, 1
push edx
mov edx, dword [esp + 0x74]
and eax, 0xff
push eax
mov eax, dword [esp + 0x3c]
push edx
mov edx, dword [esp + 0x44]
push eax
push edx
push ecx
push 0
mov eax, esi
call fcn.00069fd0
push eax
mov eax, dword [ebx + 0x88]
and eax, 0xff
call fcn.00074240
mov ecx, dword [esp + 0xac]
mov edx, dword [0x4e73e0]
push eax
mov eax, dword [ebx + 0x88]
and eax, 0xff
push eax
push ecx
add edx, 0xb88
push edx
call fcn.0009b650
test eax, eax
je 0xf8e56
and byte [edi + 2], 0xfb
mov dword [edi + 0x83c], 0
cmp dword [edi + 0x784], 3
jbe 0xf8e7c
mov eax, dword [0x4e73e0]
mov ebx, dword [esp + 0x50]
add eax, 0xb88
push 1
push eax
mov eax, dword [esp + 0x84]
call fcn.0009e380
mov ecx, dword [esp + 0x50]
mov edx, dword [0x4e73e0]
add edx, 0xb88
push ecx
push edx
mov edx, dword [esp + 0x84]
call fcn.0009dd60
mov ecx, dword [edi + 0x784]
test ecx, ecx
je 0xf8eb7
mov eax, dword [edi + 0x7a8]
add eax, 1
xor edx, edx
div ecx
mov dword [edi + 0x7a8], edx
pop edi
pop esi
mov dword [ebp + 4], 0
pop ebp
mov eax, 1
pop ebx
add esp, 0x64
ret 8