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

Disassembly:
push ebp
mov eax, 0x139c
push edi
push esi
push ebx
call fcn.703e0830
sub esp, eax
mov eax, dword [esp + 0x13b4]
mov ebp, dword [esp + 0x13bc]
mov eax, dword [eax + 0x510]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x13b4]
mov eax, dword [eax + 0x508]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x13b4]
mov eax, dword [eax + 0x504]
cmp eax, 0
mov dword [esp + 0x2c], eax
jle 0x701b694e
mov ebx, eax
shl ebx, 2
lea eax, [esp + 0x7c]
lea edx, [eax + ebx]
nop
mov dword [eax], 0xffffff38
add eax, 4
cmp eax, edx
jne 0x701b6120
lea eax, [esp + 0x180]
lea edx, [eax + ebx]
mov dword [eax], 0xffffff38
add eax, 4
cmp eax, edx
jne 0x701b6137
lea eax, [esp + 0x284]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0
mov dword [esp], eax
call fcn.6fef7ef0
lea eax, [esp + 0x388]
lea edx, [ebx + eax]
lea esi, [esi]
mov dword [eax], 1
add eax, 4
cmp eax, edx
jne 0x701b6170
lea eax, [esp + 0x48c]
mov dword [esp + 8], ebx
mov dword [esp + 4], 0xffffffff
mov dword [esp], eax
call fcn.6fef7ef0
mov eax, dword [esp + 0x2c]
sub eax, 1
test eax, eax
mov dword [esp + 0x14], eax
jle 0x701b6918
mov eax, dword [esp + 0x20]
xor esi, esi
mov dword [esp + 0x13bc], ebp
add eax, 0x458
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x13b4]
lea ebx, [eax + 4]
lea eax, [esp + 0x590]
mov dword [esp + 0x50], eax
mov edi, eax
xor eax, eax
mov ebp, eax
lea esi, [esi]
mov eax, dword [esp + 0x18]
add esi, 1
add ebx, 4
mov ecx, dword [ebx - 8]
mov dword [esp + 4], edi
mov edx, dword [esp + 0x13b8]
add edi, 0x38
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 8], eax
mov eax, dword [ebx - 4]
mov dword [esp], eax
mov eax, dword [esp + 0x13bc]
call fcn.701b5840
add ebp, eax
cmp esi, dword [esp + 0x14]
jne 0x701b61e0
mov eax, ebp
mov ebp, dword [esp + 0x13bc]
test eax, eax
je 0x701b6918
mov eax, dword [esp + 0x20]
lea ecx, [esp + 0x64]
mov edi, dword [esp + 0x2c]
mov dword [esp + 0x64], 0xffffff38
mov dword [esp + 0x68], 0xffffff38
add eax, 0x454
mov dword [esp + 0x54], eax
lea edx, [edi - 1]
mov dword [esp + 4], eax
lea eax, [esp + 0x68]
mov dword [esp], eax
mov eax, dword [esp + 0x50]
call fcn.701b5ad0
mov esi, dword [esp + 0x64]
cmp edi, 2
mov ebx, dword [esp + 0x68]
mov dword [esp + 0x7c], esi
mov dword [esp + 0x180], esi
mov dword [esp + 0x184], ebx
mov dword [esp + 0x80], ebx
jle 0x701b6945
mov dword [esp + 0x34], 2
mov eax, dword [esp + 0x13b4]
mov edi, dword [esp + 0x34]
mov eax, dword [eax + edi*4 + 0x208]
mov ebx, eax
mov dword [esp + 0x40], eax
mov eax, dword [esp + eax*4 + 0x284]
mov esi, dword [esp + ebx*4 + 0x388]
cmp dword [esp + eax*4 + 0x48c], esi
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], esi
je 0x701b65df
mov ebx, dword [esp + 0x13b4]
mov dword [esp + eax*4 + 0x48c], esi
mov edi, dword [ebx + eax*4 + 0x208]
mov dword [esp + 0x48], edi
mov edi, dword [ebx + esi*4 + 0x208]
mov ebx, dword [esp + 0x20]
mov dword [esp + 0x4c], edi
mov ecx, dword [ebx + eax*4 + 0x344]
shl eax, 2
mov edi, dword [esp + eax + 0x7c]
mov esi, dword [ebx + esi*4 + 0x344]
mov eax, dword [esp + eax + 0x180]
test edi, edi
mov dword [esp + 0x14], esi
mov dword [esp + 0x30], edi
js 0x701b68d0
test eax, eax
js 0x701b633b
add dword [esp + 0x30], eax
sar dword [esp + 0x30], 1
mov eax, dword [esp + 0x3c]
shl eax, 2
mov esi, dword [esp + eax + 0x7c]
mov eax, dword [esp + eax + 0x180]
test esi, esi
mov dword [esp + 0x38], esi
js 0x701b68e0
test eax, eax
js 0x701b6365
add dword [esp + 0x38], eax
sar dword [esp + 0x38], 1
cmp dword [esp + 0x38], 0xffffffff
je 0x701b6990
cmp dword [esp + 0x30], 0xffffffff
je 0x701b6990
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x38]
sub ebx, dword [esp + 0x30]
fld dword [ebp + ecx*4]
sub eax, ecx
fld dword [0x7083cfe0]
mov edi, eax
mov dword [esp + 0x10], eax
mov eax, ebx
cdq
idiv edi
mov edi, dword [esp + 0x20]
mov edx, 0
fnstcw word [esp + 0x5a]
fmul st(1)
fadd dword [0x7083cfe4]
lea esi, [eax - 1]
mov dword [esp + 0x24], eax
add eax, 1
test ebx, ebx
cmovs eax, esi
mov esi, dword [esp + 0x13b8]
mov dword [esp + 0x28], eax
movzx eax, word [esp + 0x5a]
mov ah, 0xc
mov word [esp + 0x58], ax
fldcw word [esp + 0x58]
fistp dword [esp + 0x5c]
fldcw word [esp + 0x5a]
mov eax, dword [esp + 0x5c]
fld dword [edi + 0x458]
fld dword [esi + ecx*4]
test eax, eax
fadd st(1)
cmovs eax, edx
cmp eax, 0x3ff
mov dx, 0x3ff
cmovg eax, edx
fucompi st(2)
fstp st(1)
jae 0x701b6760
fld dword [edi + 0x448]
mov esi, dword [esp + 0x30]
mov dword [esp + 0x1c], 1
mov edi, esi
sub edi, eax
mov eax, ebx
sar eax, 0x1f
xor ebx, eax
mov dword [esp + 0x18], ebx
imul edi, edi
xor ebx, ebx
sub dword [esp + 0x18], eax
mov eax, dword [esp + 0x10]
imul eax, dword [esp + 0x24]
cdq
xor eax, edx
sub eax, edx
sub dword [esp + 0x18], eax
nop
lea esi, [esi]
add ecx, 1
cmp dword [esp + 0x14], ecx
jle 0x701b67a0
add ebx, dword [esp + 0x18]
cmp dword [esp + 0x10], ebx
jg 0x701b6750
sub ebx, dword [esp + 0x10]
add esi, dword [esp + 0x28]
fld dword [ebp + ecx*4]
mov edx, 0
fld dword [0x7083cfe0]
fmul st(1)
fadd dword [0x7083cfe4]
fldcw word [esp + 0x58]
fistp dword [esp + 0x5c]
fldcw word [esp + 0x5a]
mov eax, dword [esp + 0x5c]
test eax, eax
cmovs eax, edx
mov dx, 0x3ff
cmp eax, 0x3ff
cmovg eax, edx
mov edx, esi
sub edx, eax
imul edx, edx
add dword [esp + 0x1c], 1
add edi, edx
mov edx, dword [esp + 0x13b8]
fld dword [edx + ecx*4]
fadd st(3)
fucompi st(1)
fstp st(0)
jb 0x701b6450
test eax, eax
je 0x701b6450
mov dword [esp + 0x5c], esi
fild dword [esp + 0x5c]
mov dword [esp + 0x5c], eax
fild dword [esp + 0x5c]
fld st(1)
fadd st(3)
fxch st(1)
fucomi st(1)
fstp st(1)
ja 0x701b6507
fxch st(1)
mov eax, dword [esp + 0x20]
fsub dword [eax + 0x44c]
fucompi st(1)
fstp st(0)
jbe 0x701b6450
fstp st(0)
fstp st(0)
jmp 0x701b6519
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
jmp 0x701b6519
fstp st(0)
fstp st(0)
fstp st(0)
fstp st(0)
mov edi, dword [esp + 0x40]
lea ebx, [esp + 0x70]
mov eax, dword [esp + 0x48]
lea ecx, [esp + 0x6c]
mov esi, dword [esp + 0x54]
mov dword [esp], ebx
mov edx, edi
sub edx, eax
imul eax, eax, 0x38
add eax, dword [esp + 0x50]
mov dword [esp + 4], esi
mov dword [esp + 0x6c], 0xffffff38
mov dword [esp + 0x70], 0xffffff38
mov dword [esp + 0x74], 0xffffff38
mov dword [esp + 0x78], 0xffffff38
call fcn.701b5ad0
mov edx, dword [esp + 0x4c]
lea ecx, [esp + 0x78]
mov dword [esp], ecx
lea ecx, [esp + 0x74]
mov dword [esp + 4], esi
sub edx, edi
mov ebx, eax
imul eax, edi, 0x38
add eax, dword [esp + 0x50]
call fcn.701b5ad0
test ebx, ebx
je 0x701b67f4
mov edi, dword [esp + 0x30]
test eax, eax
mov edx, dword [esp + 0x74]
mov dword [esp + 0x6c], edi
mov dword [esp + 0x70], edx
je 0x701b6800
mov eax, dword [esp + 0x38]
test ebx, ebx
mov dword [esp + 0x74], edx
mov dword [esp + 0x78], eax
jne 0x701b65c8
jmp 0x701b699c
fstp st(0)
fstp st(0)
jmp 0x701b65c8
fstp st(0)
mov eax, dword [esp + 0x34]
mov dword [esp + eax*4 + 0x7c], 0xffffff38
mov dword [esp + eax*4 + 0x180], 0xffffff38
add dword [esp + 0x34], 1
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x34], eax
jne 0x701b62a0
mov edi, dword [esp + 0x7c]
mov esi, dword [esp + 0x180]
mov ebp, dword [esp + 0x80]
mov ebx, dword [esp + 0x184]
mov eax, dword [esp + 0x2c]
shl eax, 2
mov dword [esp + 4], eax
mov eax, dword [esp + 0x13b0]
mov dword [esp], eax
call fcn.701a3b80
test edi, edi
mov dword [esp + 0x14], eax
js 0x701b663d
test esi, esi
js 0x701b693a
mov eax, dword [esp + 0x14]
add esi, edi
sar esi, 1
test ebp, ebp
mov dword [eax], esi
js 0x701b6653
test ebx, ebx
js 0x701b692f
mov eax, dword [esp + 0x14]
add ebx, ebp
sar ebx, 1
cmp dword [esp + 0x2c], 2
mov dword [eax + 4], ebx
jle 0x701b6741
mov eax, dword [esp + 0x13b4]
mov ebx, 2
lea ebp, [eax + 0x408]
jmp 0x701b6694
test eax, eax
js 0x701b6723
mov edi, dword [esp + 0x14]
add ebp, 4
mov dword [edi + ebx*4], eax
add ebx, 1
cmp ebx, dword [esp + 0x2c]
je 0x701b673d
mov edx, dword [esp + 0x20]
mov eax, dword [ebp]
mov ecx, dword [esp + 0x14]
mov esi, dword [edx + eax*4 + 0x344]
mov dword [esp + 0x10], esi
mov esi, dword [ecx + eax*4]
mov eax, ecx
mov ecx, dword [ebp - 0xfc]
and esi, 0x7fff
mov ecx, dword [eax + ecx*4]
and ecx, 0x7fff
sub ecx, esi
mov eax, ecx
sar eax, 0x1f
mov edi, eax
xor eax, ecx
sub eax, edi
mov edi, dword [edx + ebx*4 + 0x344]
sub edi, dword [esp + 0x10]
imul eax, edi
mov edi, edx
mov edx, dword [ebp - 0xfc]
mov edi, dword [edi + edx*4 + 0x344]
cdq
sub edi, dword [esp + 0x10]
idiv edi
mov edx, esi
sub edx, eax
add eax, esi
test ecx, ecx
cmovns edx, eax
mov eax, dword [esp + ebx*4 + 0x7c]
test eax, eax
js 0x701b68f0
mov ecx, dword [esp + ebx*4 + 0x180]
test ecx, ecx
js 0x701b671b
add eax, ecx
sar eax, 1
cmp edx, eax
jne 0x701b6675
mov eax, dword [esp + 0x14]
or dh, 0x80
add ebp, 4
mov dword [eax + ebx*4], edx
add ebx, 1
cmp ebx, dword [esp + 0x2c]
jne 0x701b6694
mov eax, dword [esp + 0x14]
add esp, 0x139c
pop ebx
pop esi
pop edi
pop ebp
ret
add esi, dword [esp + 0x24]
jmp 0x701b6473
fild dword [esp + 0x30]
fld dword [edi + 0x448]
mov dword [esp + 0x5c], eax
fild dword [esp + 0x5c]
fld st(2)
fadd st(2)
fxch st(1)
fucomi st(1)
fstp st(1)
ja 0x701b6511
fxch st(2)
fsub dword [edi + 0x44c]
fucompi st(2)
fstp st(1)
jbe 0x701b6415
fstp st(0)
fstp st(0)
jmp 0x701b6519
fstp st(1)
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x5c], ebx
fild dword [esp + 0x5c]
fld dword [eax + 0x450]
fxch st(2)
fmul st(0)
fdiv st(1)
fucompi st(2)
ja 0x701b65c0
fld dword [eax + 0x44c]
fmul st(0)
fdivrp st(1)
fucompi st(1)
ja 0x701b65c6
mov eax, edi
cdq
idiv ebx
mov dword [esp + 0x5c], eax
fild dword [esp + 0x5c]
fucompi st(1)
fstp st(0)
jbe 0x701b65c8
jmp 0x701b6519
test eax, eax
mov edx, dword [esp + 0x70]
jne 0x701b65a7
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x38], eax
mov ebx, dword [esp + 0x44]
mov eax, dword [esp + 0x6c]
test ebx, ebx
mov dword [esp + ebx*4 + 0x180], eax
jne 0x701b6823
mov dword [esp + 0x7c], eax
mov eax, dword [esp + 0x34]
mov ebx, dword [esp + 0x38]
mov dword [esp + eax*4 + 0x7c], edx
mov dword [esp + eax*4 + 0x180], ecx
mov eax, dword [esp + 0x3c]
cmp eax, 1
mov dword [esp + eax*4 + 0x7c], ebx
je 0x701b68fc
test edx, edx
js 0x701b690b
mov edx, dword [esp + 0x40]
sub edx, 1
js 0x701b6883
mov ecx, dword [esp + edx*4 + 0x388]
cmp ecx, dword [esp + 0x3c]
jne 0x701b6883
lea eax, [esp + edx*4 + 0x388]
mov ebx, dword [esp + 0x34]
jmp 0x701b6879
sub eax, 4
cmp dword [eax], ecx
jne 0x701b6883
sub edx, 1
cmp edx, 0xffffffff
mov dword [eax], ebx
jne 0x701b6872
mov edx, dword [esp + 0x40]
add edx, 1
cmp dword [esp + 0x2c], edx
jle 0x701b65df
mov ecx, dword [esp + edx*4 + 0x284]
cmp ecx, dword [esp + 0x44]
jne 0x701b65df
lea eax, [esp + edx*4 + 0x284]
mov ebx, dword [esp + 0x2c]
mov esi, dword [esp + 0x34]
jmp 0x701b68c1
add eax, 4
cmp dword [eax], ecx
jne 0x701b65df
add edx, 1
cmp edx, ebx
mov dword [eax], esi
jne 0x701b68b6
jmp 0x701b65df
mov dword [esp + 0x30], eax
jmp 0x701b633b
mov dword [esp + 0x38], eax
jmp 0x701b6365
mov eax, dword [esp + ebx*4 + 0x180]
jmp 0x701b671b
test edx, edx
mov dword [esp + 0x184], ebx
jns 0x701b684f
test ecx, ecx
jns 0x701b684f
jmp 0x701b65df
mov dword [esp + 0x14], 0
mov eax, dword [esp + 0x14]
add esp, 0x139c
pop ebx
pop esi
pop edi
pop ebp
ret
mov ebx, ebp
mov eax, dword [esp + 0x14]
jmp 0x701b6653
mov esi, edi
mov eax, dword [esp + 0x14]
jmp 0x701b663d
mov ebp, ebx
mov edi, esi
jmp 0x701b660b
jne 0x701b6198
mov eax, dword [esp + 0x20]
lea ebx, [esp + 0x590]
xor ecx, ecx
mov edx, dword [esp + 0x13b8]
mov dword [esp + 4], ebx
mov dword [esp + 0x50], ebx
add eax, 0x458
mov dword [esp + 0xc], eax
mov eax, dword [esp + 0x10]
mov dword [esp + 8], eax
mov dword [esp], eax
mov eax, ebp
call fcn.701b5840
jmp 0x701b622a
mov dword [esp], 1
call sub.msvcrt.dll_exit
mov ecx, edx
jmp 0x701b680c