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

Disassembly:
push 0xffffffffffffffff
push 0x1015bb08
mov eax, dword fs:[0]
push eax
sub esp, 0xe4
mov eax, dword [0x101ad3b4]
xor eax, esp
mov dword [esp + 0xe0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x101ad3b4]
xor eax, esp
push eax
lea eax, [esp + 0xf8]
mov dword fs:[0], eax
fld qword [0x101615b8]
mov eax, dword [esp + 0x130]
fld qword [esp + 0x124]
mov edx, dword [esp + 0x134]
mov ecx, dword [esp + 0x108]
fcom st(1)
mov esi, dword [esp + 0x11c]
mov ebx, dword [esp + 0x120]
mov dword [edx], 0xffffffff
mov dword [esp + 0x30], eax
mov dword [eax], 0xffffffff
fnstsw ax
xor edi, edi
fstp st(1)
test ah, 5
mov dword [esp + 0x2c], edx
mov dword [esp + 0x20], edi
jnp 0x1007fb6c
fld1
fcompp
fnstsw ax
test ah, 5
jnp 0x1007fb6e
cmp dword [esp + 0x12c], 3
ja 0x1007fb6e
lea eax, [esp + 0x28]
push eax
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x20]
push eax
lea edx, [esp + 0x28]
push edx
mov edx, dword [esp + 0x128]
lea eax, [esp + 0x9c]
push eax
mov eax, dword [esp + 0x128]
push edx
mov edx, dword [esp + 0x128]
push eax
mov eax, dword [esp + 0x128]
push edx
push eax
push ecx
mov dword [esp + 0x40], edi
call fcn.10041d70
add esp, 0x28
test eax, eax
je 0x1007fb6e
fld1
lea ecx, [esp + 0x14]
fsub qword [esp + 0x124]
push ecx
fnstcw word [esp + 0x18]
lea ecx, [esp + 0x84]
movzx eax, word [esp + 0x18]
fmul qword [0x10161968]
or eax, 0xc00
mov dword [esp + 0x28], eax
fldcw word [esp + 0x28]
fistp qword [esp + 0xe8]
mov ebp, dword [esp + 0xe8]
fldcw word [esp + 0x18]
call fcn.1005a770
mov dword [esp + 0x100], edi
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x3c]
call fcn.1005a770
mov byte [esp + 0x100], 1
lea ecx, [esp + 0xc8]
call fcn.100e7e56
mov byte [esp + 0x100], 2
push edi
lea eax, [esp + 0xcc]
push eax
push 0x101615a8
push esi
call fcn.10048510
mov edi, eax
add esp, 0x10
xor esi, esi
test edi, edi
jle 0x1007f567
test esi, esi
mov dword [esp + 0x14], 0
mov byte [esp + 0xdc], 0x25
mov byte [esp + 0xdd], 0x78
mov byte [esp + 0xde], 0x2d
mov byte [esp + 0xdf], 0x25
mov byte [esp + 0xe0], 0x78
mov byte [esp + 0xe1], 0
jl 0x1007f62d
cmp esi, dword [esp + 0xd0]
jge 0x1007f62d
mov ecx, dword [esp + 0xcc]
mov eax, dword [ecx + esi*4]
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x5c]
push ecx
lea edx, [esp + 0xe4]
push edx
push eax
call fcn.100f86bd
movzx eax, byte [esp + 0x26]
add eax, ebp
mov dword [esp + 0x6c], eax
mov eax, dword [esp + 0x24]
movzx ecx, ah
add ecx, ebp
and eax, 0xff
add esp, 0x10
lea edx, [esp + 0x58]
mov dword [esp + 0x60], ecx
add eax, ebp
push edx
lea ecx, [esp + 0x84]
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], 0
call fcn.1005e6a0
add esi, 1
cmp esi, edi
jl 0x1007f4ae
lea ecx, [esp + 0xb4]
call fcn.100e7e56
mov byte [esp + 0x100], 3
push 0
lea eax, [esp + 0xb8]
push eax
push 0x101615d8
push ebx
call fcn.10048510
xor esi, esi
add esp, 0x10
test eax, eax
mov dword [esp + 0xdc], eax
mov dword [esp + 0x24], esi
jle 0x1007f83b
xor edi, edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
mov dword [esp + 0x4c], edi
mov byte [esp + 0x100], 6
lea ecx, [esp + 0x58]
call fcn.100e7e56
mov byte [esp + 0x100], 7
cmp esi, edi
jl 0x1007f62d
cmp esi, dword [esp + 0xbc]
jge 0x1007f62d
mov ecx, dword [esp + 0xb8]
mov eax, dword [ecx + esi*4]
push edi
lea edx, [esp + 0x5c]
push edx
push 0x101615a8
push eax
call fcn.10048510
mov edi, eax
add esp, 0x10
cmp edi, 3
jge 0x1007f632
mov byte [esp + 0x100], 6
lea ecx, [esp + 0x58]
call fcn.100e819e
mov byte [esp + 0x100], 3
lea ecx, [esp + 0x44]
call fcn.1005a690
mov ebx, 1
jmp 0x1007f828
jmp fcn.100e4be9
cmp dword [esp + 0x60], 0
jle 0x1007f62d
mov eax, dword [esp + 0x5c]
mov eax, dword [eax]
lea ecx, [esp + 0x50]
push ecx
push 0x101616c0
push eax
call fcn.100f86bd
mov ebx, 1
add esp, 0xc
cmp dword [esp + 0x60], ebx
jle 0x1007f62d
mov edx, dword [esp + 0x5c]
mov eax, dword [edx + 4]
lea ecx, [esp + 0x54]
push ecx
push 0x101616c0
push eax
call fcn.100f86bd
mov esi, 2
add esp, 0xc
cmp edi, esi
jle 0x1007f7d0
xor edx, edx
cmp esi, edx
mov dword [esp + 0x14], edx
jl 0x1007f62d
cmp esi, dword [esp + 0x60]
jge 0x1007f62d
mov eax, dword [esp + 0x5c]
mov ecx, dword [eax + esi*4]
cmp byte [ecx], 0x2d
jne 0x1007f6f2
mov byte [esp + 0xea], dl
lea edx, [esp + 0x14]
push edx
lea ecx, [esp + 0x70]
push ecx
lea edx, [esp + 0xec]
mov dword [esp + 0x84], ebx
mov byte [esp + 0xec], 0x2d
mov byte [esp + 0xed], 0x25
mov byte [esp + 0xee], 0x78
mov byte [esp + 0xef], 0x2d
mov byte [esp + 0xf0], 0x25
mov byte [esp + 0xf1], 0x78
push edx
jmp 0x1007f73b
lea ecx, [esp + 0x14]
push ecx
mov dword [esp + 0x80], edx
lea edx, [esp + 0x70]
push edx
lea ecx, [esp + 0xf4]
mov byte [esp + 0xf4], 0x25
mov byte [esp + 0xf5], 0x78
mov byte [esp + 0xf6], 0x2d
mov byte [esp + 0xf7], 0x25
mov byte [esp + 0xf8], 0x78
mov byte [esp + 0xf9], 0
push ecx
mov eax, dword [eax + esi*4]
push eax
call fcn.100f86bd
mov eax, dword [esp + 0x24]
movzx edx, byte [esp + 0x26]
movzx ecx, ah
and eax, 0xff
add eax, ebp
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x58]
add edx, ebp
add ecx, ebp
add esp, 0x10
cmp eax, dword [esp + 0x4c]
mov dword [esp + 0x70], edx
mov dword [esp + 0x74], ecx
je 0x1007f7b0
mov edx, dword [esp + 0x6c]
mov dword [eax], edx
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x70]
mov dword [ecx + 4], eax
mov eax, dword [esp + 0x48]
mov edx, dword [esp + 0x74]
mov dword [eax + 8], edx
mov ecx, dword [esp + 0x78]
mov edx, dword [esp + 0x48]
mov dword [edx + 0xc], ecx
mov ecx, dword [esp + 0x48]
mov eax, dword [esp + 0x7c]
mov dword [ecx + 0x10], eax
add dword [esp + 0x48], 0x14
jmp 0x1007f7c6
push ebx
push ebx
lea edx, [esp + 0x1c]
push edx
lea ecx, [esp + 0x78]
push ecx
push eax
lea ecx, [esp + 0x58]
call fcn.1005a960
add esi, ebx
cmp esi, edi
jl 0x1007f684
mov eax, dword [esp + 0x3c]
cmp eax, dword [esp + 0x40]
lea edx, [esp + 0x14]
lea ecx, [esp + 0x44]
je 0x1007f7f4
push edx
push ecx
push eax
call fcn.10063420
add esp, 0xc
add dword [esp + 0x3c], 0x14
jmp 0x1007f802
push ebx
push ebx
push edx
push ecx
push eax
lea ecx, [esp + 0x4c]
call fcn.1007f1e0
mov byte [esp + 0x100], 6
lea ecx, [esp + 0x58]
call fcn.100e819e
mov byte [esp + 0x100], 3
lea ecx, [esp + 0x44]
call fcn.1005a690
mov esi, dword [esp + 0x24]
add esi, ebx
cmp esi, dword [esp + 0xdc]
mov dword [esp + 0x24], esi
jl 0x1007f5a8
mov eax, dword [esp + 0x12c]
test eax, eax
jne 0x1007f8ec
xor ebp, ebp
cmp dword [esp + 0x94], ebp
jle 0x1007fb01
mov eax, dword [esp + 0x90]
xor edi, edi
test eax, eax
jle 0x1007f8d7
jmp 0x1007f870
mov edx, ebp
imul edx, dword [esp + 0x1c]
add edx, dword [esp + 0x18]
mov byte [edx + edi*4 + 3], 0
lea eax, [edx + edi*4]
mov eax, dword [eax]
push eax
lea eax, [esp + 0x84]
call fcn.10056200
add esp, 4
test eax, eax
je 0x1007f8c9
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push ebp
push edi
push eax
push ecx
lea esi, [esp + 0x50]
call fcn.10056470
add esp, 0x18
test eax, eax
jne 0x1007fae1
mov eax, dword [esp + 0x90]
add edi, 1
cmp edi, eax
jl 0x1007f870
add ebp, 1
cmp ebp, dword [esp + 0x94]
jl 0x1007f860
jmp 0x1007fb01
cmp eax, 1
jne 0x1007f99d
mov ebp, dword [esp + 0x94]
add ebp, 0xffffffff
js 0x1007fb01
mov eax, dword [esp + 0x90]
xor edi, edi
test eax, eax
jle 0x1007f976
mov eax, ebp
imul eax, dword [esp + 0x1c]
add eax, dword [esp + 0x18]
mov byte [eax + edi*4 + 3], 0
mov ecx, dword [eax + edi*4]
lea eax, [eax + edi*4]
push ecx
lea eax, [esp + 0x84]
call fcn.10056200
add esp, 4
test eax, eax
je 0x1007f968
mov edx, dword [esp + 0x94]
mov eax, dword [esp + 0x90]
mov ecx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x1c]
push eax
push ebp
push edi
push ecx
push edx
lea esi, [esp + 0x50]
call fcn.10056470
add esp, 0x18
test eax, eax
jne 0x1007f980
mov eax, dword [esp + 0x90]
add edi, 1
cmp edi, eax
jl 0x1007f912
sub ebp, 1
jns 0x1007f90c
jmp 0x1007fb01
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x28]
mov ecx, dword [esp + 0x30]
add edi, eax
mov eax, dword [esp + 0x2c]
add ebp, edx
mov dword [ecx], edi
mov dword [eax], ebp
jmp 0x1007faf9
cmp eax, 2
jne 0x1007fa59
xor ebp, ebp
cmp dword [esp + 0x94], ebp
jle 0x1007fb01
jmp 0x1007f9c0
mov edi, dword [esp + 0x90]
add edi, 0xffffffff
js 0x1007fa2b
lea esp, [esp]
mov ecx, ebp
imul ecx, dword [esp + 0x1c]
add ecx, dword [esp + 0x18]
mov byte [ecx + edi*4 + 3], 0
mov edx, dword [ecx + edi*4]
lea eax, [ecx + edi*4]
push edx
lea eax, [esp + 0x84]
call fcn.10056200
add esp, 4
test eax, eax
je 0x1007fa26
mov eax, dword [esp + 0x94]
mov ecx, dword [esp + 0x90]
mov edx, dword [esp + 0x1c]
push eax
mov eax, dword [esp + 0x1c]
push ecx
push ebp
push edi
push edx
push eax
lea esi, [esp + 0x50]
call fcn.10056470
add esp, 0x18
test eax, eax
jne 0x1007fa3c
sub edi, 1
jns 0x1007f9d0
add ebp, 1
cmp ebp, dword [esp + 0x94]
jl 0x1007f9c0
jmp 0x1007fb01
mov ecx, dword [esp + 0x34]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x30]
add edi, ecx
mov ecx, dword [esp + 0x2c]
add ebp, eax
mov dword [edx], edi
mov dword [ecx], ebp
jmp 0x1007faf9
cmp eax, 3
jne 0x1007fb01
mov ebp, dword [esp + 0x94]
add ebp, 0xffffffff
js 0x1007fb01
mov edi, dword [esp + 0x90]
add edi, 0xffffffff
js 0x1007fada
mov edi, edi
mov edx, ebp
imul edx, dword [esp + 0x1c]
add edx, dword [esp + 0x18]
mov byte [edx + edi*4 + 3], 0
lea eax, [edx + edi*4]
mov eax, dword [eax]
push eax
lea eax, [esp + 0x84]
call fcn.10056200
add esp, 4
test eax, eax
je 0x1007fad5
mov ecx, dword [esp + 0x94]
mov edx, dword [esp + 0x90]
mov eax, dword [esp + 0x1c]
push ecx
mov ecx, dword [esp + 0x1c]
push edx
push ebp
push edi
push eax
push ecx
lea esi, [esp + 0x50]
call fcn.10056470
add esp, 0x18
test eax, eax
jne 0x1007fae1
sub edi, 1
jns 0x1007fa80
sub ebp, 1
jns 0x1007fa72
jmp 0x1007fb01
mov edx, dword [esp + 0x34]
mov ecx, dword [esp + 0x28]
mov eax, dword [esp + 0x30]
add edi, edx
mov edx, dword [esp + 0x2c]
add ebp, ecx
mov dword [eax], edi
mov dword [edx], ebp
mov dword [esp + 0x20], 1
mov eax, dword [esp + 0x18]
push eax
call fcn.100f5c3f
add esp, 4
mov dword [esp + 0x18], 0
mov byte [esp + 0x100], 2
lea ecx, [esp + 0xb4]
call fcn.100e819e
mov byte [esp + 0x100], 1
lea ecx, [esp + 0xc8]
call fcn.100e819e
mov byte [esp + 0x100], 0
lea ecx, [esp + 0x38]
call fcn.1007f0f0
mov dword [esp + 0x100], 0xffffffff
lea ecx, [esp + 0x80]
call fcn.1005a690
mov eax, dword [esp + 0x20]
jmp 0x1007fb70
fstp st(0)
xor eax, eax
mov ecx, dword [esp + 0xf8]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xe0]
xor ecx, esp
call fcn.100f611a
add esp, 0xf0
ret