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

Disassembly:
sub esp, 0x40
push ebx
push ebp
push esi
mov esi, dword [esp + 0x6c]
test esi, esi
mov ebx, ecx
push edi
mov edi, dword [esp + 0x6c]
mov dword [esp + 0x44], ebx
jne 0x10080163
mov eax, edi
lea edx, [eax + 1]
mov edi, edi
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x10080150
sub eax, edx
add eax, edi
mov dword [esp + 0x70], eax
mov esi, eax
fld dword [ebx + 8]
fld dword [esp + 0x5c]
call fcn.10119820
mov dword [esp + 0x6c], eax
fiadd dword [esp + 0x6c]
fstp dword [esp + 0x5c]
fld dword [ebx + 0xc]
fld dword [esp + 0x60]
call fcn.10119820
mov ebp, dword [esp + 0x68]
mov dword [esp + 0x6c], eax
fiadd dword [esp + 0x6c]
fstp dword [esp + 0x60]
fld dword [esp + 0x5c]
fstp dword [esp + 0x14]
fld dword [esp + 0x60]
fst dword [esp + 0x10]
fld dword [ebp + 0xc]
fcomp st(1)
fnstsw ax
test ah, 5
jnp 0x100807a1
fld dword [esp + 0x58]
fdiv dword [ebx]
fstp dword [esp + 0x58]
fld dword [ebx]
fmul dword [esp + 0x58]
fstp dword [esp + 0x1c]
fldz
fcomp dword [esp + 0x74]
fnstsw ax
test ah, 5
jp 0x100801e0
mov bl, 1
mov byte [esp + 0x6c], bl
jmp 0x100801e9
mov byte [esp + 0x6c], 0
mov bl, byte [esp + 0x6c]
fadd dword [esp + 0x1c]
mov dword [esp + 0x18], 0
fld dword [ebp + 4]
fcomp st(1)
fnstsw ax
test ah, 0x41
jne 0x10080252
test bl, bl
jne 0x10080252
fld dword [ebp + 4]
fcompp
fnstsw ax
test ah, 0x41
jne 0x10080254
cmp edi, esi
jae 0x10080254
mov eax, esi
sub eax, edi
push eax
push 0xa
push edi
call fcn.1011a830
mov edi, eax
add esp, 0xc
test edi, edi
je 0x10080230
add edi, 1
jmp 0x10080232
mov edi, esi
fld dword [esp + 0x1c]
fld st(0)
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
fadd dword [esp + 0x10]
fld dword [ebp + 4]
fcompp
fnstsw ax
test ah, 0x41
je 0x10080211
jmp 0x10080254
fstp st(0)
mov ecx, esi
sub ecx, edi
cmp ecx, 0x2710
jle 0x100802c3
test bl, bl
jne 0x100802c3
fld dword [esp + 0x10]
mov ecx, edi
fst dword [esp + 0x70]
fld dword [ebp + 0xc]
fcompp
fnstsw ax
test ah, 0x41
jne 0x100802bd
lea ebx, [ebx]
cmp ecx, esi
jae 0x100802bd
mov edx, esi
sub edx, ecx
push edx
push 0xa
push ecx
call fcn.1011a830
mov ecx, eax
add esp, 0xc
test ecx, ecx
je 0x1008029f
add ecx, 1
jmp 0x100802a1
mov ecx, esi
fld dword [esp + 0x70]
fadd dword [esp + 0x1c]
fstp dword [esp + 0x70]
fld dword [esp + 0x70]
fld dword [ebp + 0xc]
fcompp
fnstsw ax
test ah, 0x41
je 0x10080280
mov dword [esp + 0x70], ecx
mov esi, ecx
cmp edi, esi
je 0x100807a3
mov ebx, dword [esp + 0x54]
mov edx, dword [ebx + 0xc]
mov eax, esi
sub eax, edi
lea ecx, [eax + eax*2]
add eax, eax
add ecx, ecx
add eax, eax
push eax
add edx, ecx
push ecx
mov ecx, ebx
mov dword [esp + 0x54], edx
call fcn.1007d930
mov eax, dword [esp + 0x70]
cmp edi, eax
mov ecx, dword [ebx + 0x30]
mov esi, dword [ebx + 0x34]
mov ebp, dword [ebx + 0x38]
mov dword [esp + 0x48], ecx
jae 0x10080700
fld dword [esp + 0x58]
cmp byte [esp + 0x6c], 0
je 0x100803a6
cmp dword [esp + 0x18], 0
jne 0x10080359
fld dword [esp + 0x74]
push ecx
fld dword [esp + 0x18]
fsub dword [esp + 0x60]
fsubp st(1)
fstp dword [esp + 0x40]
fld dword [esp + 0x40]
fstp dword [esp]
push eax
push edi
push ecx
mov ecx, dword [esp + 0x54]
fstp dword [esp]
call fcn.10079eb0
fld dword [esp + 0x58]
cmp eax, edi
mov dword [esp + 0x18], eax
jne 0x10080359
add eax, 1
mov dword [esp + 0x18], eax
cmp edi, dword [esp + 0x18]
jb 0x100803a6
fld dword [esp + 0x5c]
mov ecx, dword [esp + 0x70]
fstp dword [esp + 0x14]
mov dword [esp + 0x18], 0
fld dword [esp + 0x1c]
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
cmp edi, ecx
jae 0x100806fe
mov al, byte [edi]
cmp al, 0x20
je 0x10080391
cmp al, 9
jne 0x10080396
add edi, 1
jmp 0x1008037f
cmp al, 0xa
jne 0x100806f2
add edi, 1
jmp 0x100806f2
movsx ebx, byte [edi]
cmp ebx, 0x80
mov dword [esp + 0x40], ebx
jae 0x100803ba
add edi, 1
jmp 0x100803dd
mov edx, dword [esp + 0x70]
fstp st(0)
push edx
lea eax, [esp + 0x44]
push edi
push eax
call fcn.1003f1c0
mov ebx, dword [esp + 0x4c]
add esp, 0xc
add edi, eax
test ebx, ebx
je 0x10080415
fld dword [esp + 0x58]
cmp ebx, 0x20
jae 0x10080427
cmp ebx, 0xa
jne 0x1008041e
fld dword [esp + 0x5c]
mov ecx, dword [esp + 0x68]
fstp dword [esp + 0x14]
fld dword [esp + 0x1c]
fadd dword [esp + 0x10]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fld dword [ecx + 0xc]
fcompp
fnstsw ax
test ah, 5
jp 0x100806ee
fstp st(0)
mov ebx, dword [esp + 0x54]
jmp 0x10080700
cmp ebx, 0xd
je 0x100806ee
fldz
mov ecx, dword [esp + 0x44]
push ebx
fstp dword [esp + 0x40]
call fcn.10079e50
mov ecx, eax
test ecx, ecx
je 0x100806e2
cmp ebx, 0x20
fld dword [ecx + 4]
fmul st(1)
fstp dword [esp + 0x3c]
je 0x100806e2
cmp ebx, 9
je 0x100806e2
fld dword [ecx + 8]
mov edx, dword [esp + 0x68]
fmul st(1)
fld dword [esp + 0x14]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x34]
fld dword [ecx + 0x10]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x28]
fld dword [ecx + 0xc]
fmul st(1)
fld dword [esp + 0x10]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x20]
fld dword [ecx + 0x14]
fmul st(2)
faddp st(1)
fstp dword [esp + 0x24]
fld dword [esp + 0x34]
fld dword [edx + 8]
fcomp st(1)
fnstsw ax
test ah, 1
jne 0x100806e0
fld dword [esp + 0x28]
fld dword [edx]
fcomp st(1)
fnstsw ax
test ah, 0x41
jp 0x100806de
cmp byte [esp + 0x78], 0
fld dword [ecx + 0x18]
fstp dword [esp + 0x28]
fld dword [ecx + 0x1c]
fstp dword [esp + 0x2c]
fld dword [ecx + 0x20]
fstp dword [esp + 0x38]
fld dword [ecx + 0x24]
fstp dword [esp + 0x30]
je 0x10080621
fstp st(2)
fld dword [edx]
fcomp st(1)
fnstsw ax
fld dword [esp + 0x38]
test ah, 0x41
jne 0x1008052b
fld st(2)
fsub dword [edx]
fld st(3)
fsubrp st(3)
fdivrp st(2)
fld1
fsubrp st(2)
fld st(0)
fld dword [esp + 0x28]
fld st(0)
fsubp st(2)
fxch st(3)
fmulp st(1)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x28]
fld dword [edx]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fxch st(1)
fld dword [esp + 0x20]
fld dword [edx + 4]
fcomp st(1)
fnstsw ax
fld dword [esp + 0x24]
test ah, 0x41
jne 0x10080573
fld st(0)
fsub dword [edx + 4]
fld st(1)
fsubrp st(3)
fdivrp st(2)
fld1
fsubrp st(2)
fld dword [esp + 0x30]
fld dword [esp + 0x2c]
fld st(0)
fsubp st(2)
fxch st(3)
fmulp st(1)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x2c]
fld dword [edx + 4]
fstp dword [esp + 0x20]
fld dword [esp + 0x20]
fxch st(1)
fld dword [edx + 8]
fcomp st(5)
fnstsw ax
fld dword [esp + 0x28]
test ah, 5
jp 0x1008061d
fld dword [edx + 8]
fsub st(5)
fld st(5)
fsubp st(7)
fdivrp st(6)
fld st(0)
fsubp st(4)
fxch st(5)
fmulp st(3)
fld st(4)
faddp st(3)
fxch st(2)
fstp dword [esp + 0x38]
fld dword [edx + 8]
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fxch st(4)
fxch st(2)
fld dword [edx + 0xc]
fcomp st(1)
fnstsw ax
fld dword [esp + 0x2c]
test ah, 5
jp 0x100805ed
fld dword [edx + 0xc]
fsub st(3)
fld st(3)
fsubp st(3)
fdivrp st(2)
fld dword [esp + 0x30]
fsub st(1)
fmulp st(2)
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x30]
fld dword [edx + 0xc]
fstp dword [esp + 0x24]
fld dword [esp + 0x24]
fxch st(1)
fxch st(2)
fcom st(1)
fnstsw ax
test ah, 1
jne 0x100806d5
fstp st(1)
fstp st(0)
fstp st(0)
fstp st(1)
fstp st(1)
fstp st(0)
fld dword [esp + 0x3c]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
fld dword [esp + 0x58]
jmp 0x100806ee
fstp st(3)
jmp 0x100805b3
fld dword [esp + 0x20]
fld dword [esp + 0x24]
fld dword [esp + 0x28]
fld dword [esp + 0x2c]
fxch st(4)
fxch st(6)
fxch st(1)
fxch st(4)
fxch st(3)
fxch st(1)
mov edx, dword [esp + 0x48]
fxch st(5)
movzx eax, dx
mov word [ebp], ax
mov word [ebp + 6], ax
lea ecx, [eax + 1]
mov word [ebp + 2], cx
lea ecx, [eax + 2]
mov word [ebp + 4], cx
mov word [ebp + 8], cx
add eax, 3
mov word [ebp + 0xa], ax
mov eax, dword [esp + 0x64]
fst dword [esi]
add edx, 4
fxch st(1)
mov dword [esi + 0x10], eax
fst dword [esi + 4]
mov dword [esi + 0x24], eax
fxch st(4)
mov dword [esi + 0x38], eax
fst dword [esi + 8]
mov dword [esi + 0x4c], eax
fxch st(3)
add esi, 0x50
fst dword [esi - 0x44]
mov dword [esp + 0x48], edx
fxch st(6)
add ebp, 0xc
fst dword [esi - 0x3c]
fxch st(4)
fstp dword [esi - 0x38]
fld dword [esp + 0x38]
fst dword [esi - 0x34]
fxch st(6)
fstp dword [esi - 0x30]
fxch st(3)
fstp dword [esi - 0x28]
fst dword [esi - 0x24]
fxch st(4)
fstp dword [esi - 0x20]
fld dword [esp + 0x30]
fst dword [esi - 0x1c]
fxch st(2)
fstp dword [esi - 0x14]
fxch st(3)
fstp dword [esi - 0x10]
fxch st(2)
fstp dword [esi - 0xc]
fxch st(1)
fstp dword [esi - 8]
jmp 0x100806e2
fld dword [esp + 0x58]
jmp 0x1008063d
fstp st(1)
fstp st(0)
fld dword [esp + 0x3c]
fadd dword [esp + 0x14]
fstp dword [esp + 0x14]
mov ebx, dword [esp + 0x54]
mov eax, dword [esp + 0x70]
cmp edi, eax
jb 0x1008030b
fstp st(0)
mov ecx, esi
sub ecx, dword [ebx + 0x20]
mov eax, 0x66666667
imul ecx
mov ecx, dword [ebx + 0x1c]
sar edx, 3
mov edi, edx
shr edi, 0x1f
add edi, edx
cmp edi, ecx
jle 0x10080740
test ecx, ecx
je 0x1008072c
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x10080731
mov eax, 8
cmp eax, edi
jg 0x10080737
mov eax, edi
push eax
lea ecx, [ebx + 0x18]
call fcn.1007ab60
mov dword [ebx + 0x18], edi
mov ecx, dword [ebx + 0x10]
mov edi, ebp
sub edi, dword [ebx + 0x14]
sar edi, 1
cmp edi, ecx
jle 0x10080774
test ecx, ecx
je 0x10080760
mov eax, ecx
cdq
sub eax, edx
sar eax, 1
add eax, ecx
jmp 0x10080765
mov eax, 8
cmp eax, edi
jg 0x1008076b
mov eax, edi
push eax
lea ecx, [ebx + 0xc]
call fcn.10044110
mov dword [ebx + 0xc], edi
mov edx, dword [ebx]
mov eax, dword [ebx + 8]
shl edx, 5
mov ecx, edi
sub ecx, dword [esp + 0x4c]
lea eax, [edx + eax - 0x20]
add dword [eax], ecx
mov edx, dword [ebx + 0x18]
pop edi
mov dword [ebx + 0x34], esi
pop esi
mov dword [ebx + 0x38], ebp
pop ebp
mov dword [ebx + 0x30], edx
pop ebx
add esp, 0x40
ret 0x28
fstp st(0)
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x40
ret 0x28