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

Disassembly:
push ebp
push edi
mov edi, eax
push esi
push ebx
sub esp, 0xac
mov eax, dword [eax]
mov esi, dword [edi + 0xc]
mov dword [esp + 0x48], 0
mov dword [esp + 0x34], eax
movzx eax, byte [eax + 0x16]
mov dword [esp + 0x20], esi
mov esi, edi
mov byte [esp + 0x3a], al
cmp byte [esi + 5], 0
je 0x6665b3b8
lea eax, [esi + 0x28]
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x14]
movzx eax, byte [eax + 0x10]
test al, al
je 0x6665b477
lea edx, [esp + 0x48]
mov eax, esi
call fcn.6665a960
mov edi, dword [esp + 0x48]
mov dword [esp + 0x3c], edi
test edi, edi
jne 0x6665b47e
mov ecx, dword [eax + 0x18]
movzx eax, byte [ecx + 2]
movzx edx, byte [ecx + 3]
shl eax, 8
lea edi, [eax + edx]
mov eax, dword [esp + 0x14]
mov dword [esp + 0x30], edi
movzx edx, byte [eax + 0x12]
mov eax, dword [esp + 0x34]
movzx eax, byte [eax + 0x17]
imul eax, edx
lea ebp, [ecx + eax + 4]
cmp edx, edi
jge 0x6665afd9
mov edx, dword [esp + 0x20]
test edx, edx
jle 0x6665b0af
fld1
mov dword [esp + 0x24], 2
xor edi, edi
fchs
jmp 0x6665ae05
mov ebx, dword [esp + 0x14]
mov ecx, dword [edx]
cmp byte [ebx + 0x10], 1
je 0x6665b0c0
and ecx, 0xfe
lea ebx, [ebp + ecx*4 + 8]
cmp eax, 0x40
je 0x6665b030
jg 0x6665afe8
cmp eax, 0x3f
jne 0x6665b310
jmp 0x6665adf8
fstp st(0)
jmp 0x6665adf8
fstp st(0)
lea esi, [esi]
add edi, 1
cmp dword [esp + 0x20], edi
je 0x6665af50
mov edx, dword [esi + 0x10]
lea eax, [edi + edi*2]
lea edx, [edx + eax*8]
mov eax, dword [edx + 4]
cmp eax, 0x45
jle 0x6665adb0
mov ebx, dword [edx + 0x10]
mov ecx, dword [ebx + 0x1c]
mov dword [esp + 0x18], ecx
cmp eax, 0x47
je 0x6665b350
cmp byte [esp + 0x3a], 1
mov ecx, dword [esp + 0x18]
je 0x6665b170
cmp ecx, 8
je 0x6665b2e3
jg 0x6665b2b0
cmp ecx, 4
je 0x6665ae73
cmp ecx, 6
jne 0x6665ae95
mov ecx, dword [ebp + 0x1c]
bswap ecx
mov dword [esp + 0x28], ecx
fld dword [esp + 0x28]
mov ecx, dword [ebp + 0x18]
fstp qword [esp + 0x78]
bswap ecx
mov dword [esp + 0x28], ecx
fld dword [esp + 0x28]
fstp qword [esp + 0x70]
mov ecx, dword [ebp + 0x14]
bswap ecx
mov dword [esp + 0x28], ecx
fld dword [esp + 0x28]
mov ecx, dword [ebp + 0x10]
fstp qword [esp + 0x68]
bswap ecx
mov dword [esp + 0x28], ecx
fld dword [esp + 0x28]
fstp qword [esp + 0x60]
mov ecx, dword [ebp + 0xc]
bswap ecx
mov dword [esp + 0x28], ecx
fld dword [esp + 0x28]
mov ecx, dword [ebp + 8]
fstp qword [esp + 0x58]
bswap ecx
mov edx, dword [edx + 8]
mov dword [esp + 0x28], ecx
fld dword [esp + 0x28]
fstp qword [esp + 0x50]
cmp eax, 0x46
je 0x6665b200
mov ecx, dword [esp + 0x14]
lea eax, [esp + 0x50]
fstp qword [esp + 0x18]
fld qword [ecx]
mov dword [ebx + 0x14], eax
movzx eax, byte [ecx + 0x10]
fst qword [ebx + 0x30]
sub eax, 1
fstp qword [ebx + 0x40]
mov dword [ebx + 0x20], eax
movzx eax, byte [ecx + 0x11]
mov dword [ebx + 0x38], eax
mov dword [ebx + 0x3c], eax
mov dword [esp], ebx
call edx
mov ecx, dword [esp + 0x24]
mov edx, dword [ebx + 0x3c]
fld qword [ebx + 0x40]
fld qword [esp + 0x18]
cmp ecx, edx
cmovle edx, ecx
fcomi st(1)
mov dword [esp + 0x24], edx
ja 0x6665af20
fldz
fcompi st(1)
fcmovnbe st(0), st(1)
fstp st(1)
jmp 0x6665af22
fstp st(0)
mov dword [esp + 0x48], eax
test eax, eax
jne 0x6665b45b
mov ecx, dword [esp + 0x24]
test ecx, ecx
je 0x6665b034
add edi, 1
cmp dword [esp + 0x20], edi
jne 0x6665ae05
lea esi, [esi]
nop
mov edi, dword [esp + 0x14]
movzx ebx, byte [edi + 0x12]
lea eax, [ebx + 1]
mov byte [esp + 0x28], al
mov byte [edi + 0x12], al
movzx eax, byte [edi + 0x10]
mov byte [esp + 0x18], al
sub al, 1
mov byte [esp + 0x3b], al
jne 0x6665b404
mov eax, dword [esp + 0x14]
mov edi, dword [eax + 8]
mov eax, dword [eax + 0xc]
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], eax
movzx eax, byte [esp + 0x28]
cmp eax, dword [esp + 0x30]
jge 0x6665b3f0
fldz
movzx edx, byte [esp + 0x3b]
mov eax, esi
fucomi st(1)
fcmovbe st(0), st(1)
fstp st(1)
fstp qword [esp]
call fcn.6664eaf0
test eax, eax
je 0x6665b487
mov edi, dword [esp + 0x14]
movzx ecx, byte [esp + 0x24]
mov byte [eax + 0x12], bl
mov dword [eax + 8], edi
mov edi, dword [esp + 0x18]
mov byte [eax + 0x11], cl
mov dword [eax + 0xc], edi
cmp ebx, dword [esp + 0x30]
jl 0x6665ad1b
mov eax, esi
call fcn.6664e910
jmp 0x6665ad1b
lea ecx, [eax - 0x41]
cmp ecx, 2
ja 0x6665b310
mov ecx, dword [ebx]
cmp byte [esp + 0x3a], 1
bswap ecx
mov dword [esp + 0x18], ecx
jne 0x6665b3a8
fild dword [esp + 0x18]
fld qword [edx + 8]
fcomi st(1)
fstp st(1)
jae 0x6665ade8
cmp eax, 0x41
je 0x6665b313
fstp st(0)
fstp st(0)
jmp 0x6665b07a
fstp st(0)
jmp 0x6665b07a
fstp st(0)
jmp 0x6665b07a
fstp st(0)
fstp st(0)
jmp 0x6665b07a
fstp st(0)
jmp 0x6665b07a
fstp st(0)
jmp 0x6665b07a
fstp st(0)
jmp 0x6665b07a
fstp st(0)
jmp 0x6665b07a
fstp st(0)
jmp 0x6665b07a
fstp st(0)
mov edi, dword [esp + 0x14]
movzx eax, byte [edi + 0x12]
mov byte [esp + 0x18], al
add eax, 1
mov byte [edi + 0x12], al
mov edi, dword [esp + 0x34]
movzx eax, al
movzx edx, byte [edi + 0x17]
add ebp, edx
cmp eax, dword [esp + 0x30]
jge 0x6665afd9
mov edx, dword [esp + 0x20]
test edx, edx
jg 0x6665ad97
fld1
mov dword [esp + 0x24], 2
fchs
jmp 0x6665af50
mov ecx, dword [ebp + ecx*4 + 8]
cmp byte [esp + 0x3a], 1
bswap ecx
mov dword [esp + 0x18], ecx
jne 0x6665b340
fild dword [esp + 0x18]
sub eax, 0x3f
cmp eax, 6
ja case.0x6665b0e1.65
jmp dword [eax*4 + 0x666865c0]
fld qword [edx + 8]
fxch st(1)
fcompi st(1)
fstp st(0)
jbe 0x6665b050
jmp 0x6665adf8
fld qword [edx + 8]
fxch st(1)
fcompi st(1)
fstp st(0)
jb 0x6665b058
jmp 0x6665adf8
fld qword [edx + 8]
fcompi st(1)
fstp st(0)
jbe 0x6665b060
jmp 0x6665adf8
fld qword [edx + 8]
fcompi st(1)
fstp st(0)
jb 0x6665b068
jmp 0x6665adf8
fld qword [edx + 8]
fucompi st(1)
fstp st(0)
jp 0x6665b070
je 0x6665adf8
fstp st(0)
jmp 0x6665b07a
cmp ecx, 8
je 0x6665b283
jg 0x6665b250
cmp ecx, 4
je 0x6665b1ab
cmp ecx, 6
jne 0x6665b1cd
mov ecx, dword [ebp + 0x1c]
bswap ecx
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
mov ecx, dword [ebp + 0x18]
fstp qword [esp + 0x78]
bswap ecx
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
fstp qword [esp + 0x70]
mov ecx, dword [ebp + 0x14]
bswap ecx
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
mov ecx, dword [ebp + 0x10]
fstp qword [esp + 0x68]
bswap ecx
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
fstp qword [esp + 0x60]
mov ecx, dword [ebp + 0xc]
bswap ecx
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
mov ecx, dword [ebp + 8]
fstp qword [esp + 0x58]
bswap ecx
mov edx, dword [edx + 8]
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
fstp qword [esp + 0x50]
cmp eax, 0x46
jne 0x6665aec3
fstp st(0)
jmp 0x6665b202
fstp st(0)
lea eax, [esp + 0x4c]
mov dword [esp], ebx
mov dword [esp + 0xc], eax
lea eax, [esp + 0x50]
mov dword [esp + 8], eax
mov eax, dword [esp + 0x18]
mov dword [esp + 0x4c], 0
mov dword [esp + 4], eax
call edx
mov ebx, dword [esp + 0x4c]
test ebx, ebx
jne 0x6665b390
mov dword [esp + 0x48], eax
mov edx, eax
test eax, eax
je 0x6665b07a
add esp, 0xac
mov eax, edx
pop ebx
pop esi
pop edi
pop ebp
ret
cmp dword [esp + 0x18], 0xa
jne 0x6665b1cd
mov ecx, dword [ebp + 0x2c]
bswap ecx
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
mov ecx, dword [ebp + 0x28]
fstp qword [esp + 0x98]
bswap ecx
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
fstp qword [esp + 0x90]
mov ecx, dword [ebp + 0x24]
bswap ecx
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
mov ecx, dword [ebp + 0x20]
fstp qword [esp + 0x88]
bswap ecx
mov dword [esp + 0x28], ecx
fild dword [esp + 0x28]
fstp qword [esp + 0x80]
jmp 0x6665b189
cmp dword [esp + 0x18], 0xa
jne 0x6665ae95
mov ecx, dword [ebp + 0x2c]
bswap ecx
mov dword [esp + 0x28], ecx
fld dword [esp + 0x28]
mov ecx, dword [ebp + 0x28]
fstp qword [esp + 0x98]
bswap ecx
mov dword [esp + 0x28], ecx
fld dword [esp + 0x28]
fstp qword [esp + 0x90]
mov ecx, dword [ebp + 0x24]
bswap ecx
mov dword [esp + 0x28], ecx
fld dword [esp + 0x28]
mov ecx, dword [ebp + 0x20]
fstp qword [esp + 0x88]
bswap ecx
mov dword [esp + 0x28], ecx
fld dword [esp + 0x28]
fstp qword [esp + 0x80]
jmp 0x6665ae51
fld qword [edx + 8]
mov eax, dword [ebx + 4]
cmp byte [esp + 0x3a], 1
bswap eax
mov dword [esp + 0x18], eax
jne 0x6665b380
fild dword [esp + 0x18]
fcompi st(1)
fstp st(0)
jb 0x6665b078
jmp 0x6665adf8
fld dword [esp + 0x18]
jmp 0x6665b0d9
mov ecx, dword [esp + 0x14]
cmp byte [ecx + 0x10], 1
jne 0x6665ae29
mov ecx, dword [ebp]
bswap ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [ebp + 4]
bswap ecx
mov dword [ebx + 0x28], ecx
mov ecx, dword [esp + 0x28]
mov dword [ebx + 0x2c], ecx
jmp 0x6665ae29
fld dword [esp + 0x18]
jmp 0x6665b327
mov dword [esp + 0x48], eax
test eax, eax
jne 0x6665b45d
fldz
jmp 0x6665adf8
fld dword [esp + 0x18]
jmp 0x6665b00b
mov eax, dword [esi + 0x18]
test eax, eax
je 0x6665b3ce
mov eax, dword [esi + 0x20]
mov dword [esp + 0x14], eax
test eax, eax
jne 0x6665ad2c
mov edi, esi
mov eax, 1
mov byte [edi + 4], al
xor edx, edx
add esp, 0xac
pop ebx
mov eax, edx
pop esi
pop edi
pop ebp
ret
mov eax, esi
fstp qword [esp + 0x28]
call fcn.6664e910
fld qword [esp + 0x28]
jmp 0x6665af97
mov ebx, dword [ebp]
mov eax, dword [ebp + 4]
mov ebp, dword [esi + 0x18]
bswap eax
bswap ebx
mov dword [esp + 0x14], eax
mov edi, eax
mov dword [esp + 0x18], ebx
test ebp, ebp
jle 0x6665b491
mov eax, dword [esi + 0x20]
mov edx, dword [esp + 0x3c]
mov dword [esp + 0x3c], esi
add eax, 8
jmp 0x6665b43a
add edx, 1
add eax, 0x18
cmp edx, ebp
je 0x6665b46c
mov ecx, dword [eax]
mov esi, dword [eax + 4]
xor ecx, edi
xor esi, ebx
or esi, ecx
jne 0x6665b430
fstp st(0)
add esp, 0xac
mov edx, 0x10b
pop ebx
mov eax, edx
pop esi
pop edi
pop ebp
ret
fstp st(0)
add esp, 0xac
mov edx, eax
pop ebx
mov eax, edx
pop esi
pop edi
pop ebp
ret
mov esi, dword [esp + 0x3c]
xor ebx, ebx
jmp 0x6665af88
mov edi, esi
jmp 0x6665b3d5
mov edx, dword [esp + 0x3c]
jmp 0x6665b241
mov edx, 7
jmp 0x6665b241
xor ebx, ebx
jmp 0x6665af88