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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x378
push ebx
push esi
xor esi, esi
cmp dword [edi + 0x2e4], esi
jg 0x765123
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 0x1c4]
call edx
mov byte [esp + 0x3b], al
mov dword [esp + 0x58], esi
mov dword [esp + 0x3c], esi
mov dword [esp + 0x5c], esi
mov byte [esp + 0x47], 0
mov eax, 0xf4
mov dword [esp + 0x40], eax
mov dword [esp + 0x48], 8
mov edi, edi
mov ecx, dword [edi]
fld qword [0x82de90]
mov esi, dword [eax + ecx]
test esi, esi
je 0x76494d
cmp dword [esi + 0x230], 0
jle 0x7647f1
mov byte [esp + 0x47], 1
cmp byte [esi + 0x174], 0
je 0x7648f1
cmp byte [esp + 0x3b], 0
je 0x76481e
test byte [esi + 0x228], 2
je 0x764827
fstp st(0)
fld dword [esi + 0x178]
fadd qword [0x82e218]
jmp 0x76483d
test byte [esi + 0x228], 2
je 0x76482f
fadd dword [esi + 0x178]
jmp 0x76483d
fstp st(0)
fld dword [esi + 0x178]
fadd qword [0x82dc60]
fstp dword [esi + 0x178]
fld1
fcomp dword [esi + 0x178]
fnstsw ax
test ah, 5
jp 0x7648bc
mov eax, dword [edi + 0x38]
mov ecx, dword [esi + 0x188]
cmp ecx, eax
jle 0x764861
mov eax, ecx
mov dword [esi + 0x188], eax
mov edx, dword [edi + 0x34]
mov dword [esi + 0x234], edx
mov eax, dword [edi + 0x34]
mov ecx, dword [edi]
push eax
call fcn.0071c0c0
mov ecx, dword [edi + 0x1c]
or dword [esi + 0x238], ecx
mov eax, dword [edi]
mov edx, dword [edi + 0x34]
mov ebx, dword [eax]
push edx
mov ecx, eax
mov dword [esp + 0x38], eax
call fcn.0071c0c0
mov ecx, dword [esp + 0x34]
push eax
mov eax, dword [ebx + 0x320]
push esi
call eax
test al, al
jne 0x76494f
mov dword [esi + 0x230], 1
jmp 0x76494f
fld dword [esi + 0x178]
fcomp qword [0x82e210]
fnstsw ax
test ah, 5
jp 0x7648df
mov eax, dword [esp + 0x3c]
mov dword [esp + eax*4 + 0x180], esi
inc eax
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x58]
mov dword [esp + eax*4 + 0x280], esi
inc eax
mov dword [esp + 0x58], eax
jmp 0x76494f
mov eax, dword [edi + 0x10]
fstp st(0)
cmp dword [esi + 0x220], eax
je 0x764903
cmp eax, 0xffffffff
jne 0x76494f
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 0x2b0]
call eax
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fadd dword [esi + 0x14]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fcomp dword [0x82e208]
fnstsw ax
test ah, 0x41
jne 0x76494f
test dword [esi + 0x228], 0x1800
jne 0x76494f
mov eax, dword [esp + 0x5c]
mov dword [esp + eax*4 + 0x80], esi
inc eax
mov dword [esp + 0x5c], eax
jmp 0x76494f
fstp st(0)
mov eax, dword [esp + 0x40]
add eax, 4
sub dword [esp + 0x48], 1
mov dword [esp + 0x40], eax
jne 0x7647d0
cmp eax, 0x1f4
jl 0x7647c2
mov ecx, dword [esp + 0x58]
mov eax, 0x14
inc ecx
cdq
idiv ecx
mov esi, eax
add esi, 5
cmp byte [esp + 0x3b], 0
mov dword [esp + 0x34], esi
je 0x76499e
fild dword [esp + 0x34]
fmul qword [0x82e200]
call fcn.0076f850
mov esi, eax
cmp dword [edi + 0x10], 0xffffffff
jne 0x7649ad
mov eax, esi
cdq
sub eax, edx
sar eax, 1
mov esi, eax
mov ebx, dword [esp + 0x5c]
fldz
test ebx, ebx
jle 0x764c48
mov edx, dword [edi + 0x78]
sub edx, dword [edi + 0x74]
test edx, 0xfffffffc
je 0x7649e2
mov edx, dword [edi]
add edx, 0x254
call fcn.005813d0
xor edx, edx
div esi
test edx, edx
jne 0x764c48
cmp dword [esp + 0x3c], 0
fstp st(0)
mov dword [esp + 0x4c], 0
jle 0x764a0f
mov edx, dword [edi]
add edx, 0x254
call fcn.005813d0
xor edx, edx
div dword [esp + 0x3c]
mov esi, dword [esp + edx*4 + 0x180]
jmp 0x764a34
cmp dword [esp + 0x58], 0
jle 0x764c1f
mov edx, dword [edi]
add edx, 0x254
call fcn.005813d0
xor edx, edx
div dword [esp + 0x58]
mov esi, dword [esp + edx*4 + 0x280]
test esi, esi
je 0x764c1f
mov dword [esp + 0x3c], 0
test ebx, ebx
jle 0x764a93
jmp 0x764a50
mov eax, dword [esp + 0x3c]
mov ebx, dword [esp + eax*4 + 0x80]
mov eax, dword [ebx + 0xc]
sub eax, dword [esi + 0xc]
cdq
mov ecx, eax
mov eax, dword [ebx + 8]
sub eax, dword [esi + 8]
xor ecx, edx
sub ecx, edx
cdq
xor eax, edx
sub eax, edx
cmp eax, ecx
jl 0x764a79
mov eax, ecx
cmp eax, 0x7fffffff
jge 0x764a84
mov dword [esp + 0x4c], ebx
mov eax, dword [esp + 0x3c]
inc eax
cmp eax, dword [esp + 0x5c]
mov dword [esp + 0x3c], eax
jl 0x764a50
mov ebx, dword [esp + 0x4c]
fld dword [esi + 0x14]
lea ecx, [ebx + 0x14]
mov dword [esp + 0x40], ecx
call fcn.0076f850
fld dword [esi + 0x10]
add eax, 0x40
push eax
call fcn.0076f850
mov edx, dword [esp + 0x44]
fld dword [edx]
add eax, 0x40
push eax
call fcn.0076f850
fld dword [ebx + 0x10]
add eax, 0x40
push eax
call fcn.0076f850
add eax, 0x40
push eax
push edi
call fcn.00764270
push 0x11
call fcn.007079c0
mov esi, eax
mov dword [esi + 0x1ac], 2
mov ecx, dword [ebx]
mov eax, dword [ecx]
mov edx, dword [eax + 0x2ac]
mov dword [esp + 0x48], esi
call edx
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
fadd dword [ebx + 0x10]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fadd qword [0x82dd50]
fstp dword [esi + 0x10]
mov ebx, dword [ebx]
mov eax, dword [ebx]
mov edx, dword [eax + 0x2b0]
mov ecx, ebx
call edx
mov dword [esp + 0x34], eax
fild dword [esp + 0x34]
mov eax, dword [esp + 0x40]
mov dword [esp + 0x54], esi
lea ebx, [esp + 0x50]
fadd dword [eax]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fadd qword [0x82dd50]
fstp dword [esi + 0x14]
fld dword [0x82e18c]
fstp dword [esi + 0x18]
fld dword [0x82e19c]
fstp dword [esi + 0x198]
fld dword [0x82e198]
fstp dword [esi + 0x19c]
fldz
fstp dword [esi + 0x4c]
fld dword [0x82e194]
fstp dword [esi + 0x50]
fld dword [0x82e190]
fstp dword [esi + 0x58]
mov ecx, dword [edi]
mov eax, dword [ecx + 0x12c0]
mov edx, dword [esi + 8]
mov dword [esp + 0x34], eax
add eax, 0xbc
lea esi, [esp + 0x74]
mov dword [esp + 0x50], edx
call fcn.00418740
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x48]
mov dword [ecx + 0x1b8], eax
mov eax, dword [edi + 0x18]
mov edx, dword [edi + 0xc]
sub edx, eax
cmp edx, 0x14
jge 0x764bc3
test eax, eax
jne 0x764c3b
mov eax, dword [0x88b12c]
mov edx, dword [0x882ec8]
sub esp, 0x10
cmp byte [esp + 0x4b], 0
je 0x764c00
fild dword [eax + 0x9e0]
fld qword [0x82de58]
fmul st(1)
fld qword [0x82dcf8]
fdiv st(1), st(0)
fxch st(1)
fstp qword [esp + 8]
fxch st(1)
fmul qword [str.q_np]
fdivrp st(1)
jmp 0x764c0c
fldz
fstp qword [esp + 8]
fld qword [0x7a8008]
fstp qword [esp]
push 0
call fcn.007488f0
mov dword [edi + 0x18], 0
jmp 0x764c3b
mov edx, dword [edi]
add edx, 0x254
call fcn.005813d0
xor edx, edx
div ebx
mov eax, dword [esp + edx*4 + 0x80]
mov dword [esp + 0x4c], eax
mov ecx, dword [esp + 0x4c]
fldz
mov byte [ecx + 0x174], 1
mov edx, dword [edi + 0x78]
sub edx, dword [edi + 0x74]
mov dword [esp + 0x3c], 0
test edx, 0xfffffffc
jle 0x76506f
fstp st(0)
mov eax, dword [edi + 0x78]
sub eax, dword [edi + 0x74]
mov esi, dword [esp + 0x3c]
sar eax, 2
cmp esi, eax
jb 0x764c7a
call fcn.006441b7
mov ecx, dword [edi + 0x74]
mov esi, dword [ecx + esi*4]
fld dword [esi + 0x80]
fadd qword [0x82df98]
fstp dword [esp + 0x34]
fld dword [esp + 0x34]
fst dword [esi + 0x80]
fld1
fcomp st(1)
fnstsw ax
test ah, 5
jp 0x764d23
mov esi, dword [edi + 0x74]
fstp st(0)
cmp esi, dword [edi + 0x78]
jbe 0x764cb4
call fcn.006441b7
mov ebx, dword [edi + 0x68]
test ebx, ebx
jne 0x764cd6
call fcn.006441b7
xor eax, eax
mov edx, dword [esp + 0x3c]
lea esi, [esi + edx*4]
cmp esi, dword [eax + 0x10]
ja 0x764ce1
test ebx, ebx
je 0x764cda
mov ebx, dword [ebx]
jmp 0x764cdc
mov eax, dword [ebx]
jmp 0x764cc2
xor ebx, ebx
cmp esi, dword [ebx + 0xc]
jae 0x764ce6
call fcn.006441b7
mov eax, dword [edi + 0x78]
lea ecx, [esi + 4]
sub eax, ecx
sar eax, 2
test eax, eax
jle 0x764d05
add eax, eax
add eax, eax
push eax
push ecx
push eax
push esi
call fcn.00643dc7
add esp, 0x10
add dword [edi + 0x78], 0xfffffffc
mov eax, dword [edi + 0x78]
cmp dword [edi + 0x74], esi
ja 0x764d15
cmp esi, eax
jbe 0x764d1a
call fcn.006441b7
dec dword [esp + 0x3c]
jmp 0x765053
fld qword [0x7a8008]
fld st(0)
fsubrp st(2)
fxch st(1)
fmul qword [0x82ded8]
fsubp st(1)
fldz
fcom st(1)
fnstsw ax
test ah, 0x41
jne 0x764d46
fstp st(1)
jmp 0x764d48
fstp st(0)
cmp byte [esp + 0x3b], 0
fstp dword [esp + 0x70]
je 0x764d69
mov eax, dword [edi + 0xc]
and eax, 0x80000007
jns 0x764d62
dec eax
or eax, 0xfffffff8
inc eax
je 0x764d7f
jmp 0x765053
mov ecx, dword [edi + 0xc]
and ecx, 0x80000003
jns 0x764d79
dec ecx
or ecx, 0xfffffffc
inc ecx
jne 0x765053
fld dword [esi]
mov dword [esp + 0x4c], 0
fstp dword [esp + 0x64]
lea ebx, [esi + 8]
fld dword [esi + 4]
fstp dword [esp + 0x68]
fld dword [esi + 0x70]
fstp dword [esp + 0x60]
fld dword [esi + 0x74]
fstp dword [esp + 0x6c]
fild dword [esp + 0x4c]
push ecx
fdiv qword [0x82df88]
fstp dword [esp + 0x44]
fld dword [esp + 0x44]
fadd st(0), st(0)
fsubr qword [0x7a8008]
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp dword [esp]
call fcn.00409960
fld qword [0x7a8008]
add esp, 4
fld st(0)
fsubrp st(2)
fxch st(1)
fstp dword [esp + 0x48]
call fcn.00437c00
cdq
mov ecx, 0xf4240
idiv ecx
sub edx, 0x7a120
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
fld qword [0x82dd28]
fdiv st(1), st(0)
fxch st(1)
fstp dword [esp + 0x34]
fld dword [esp + 0x40]
fld st(0)
fsubp st(3)
fld st(0)
fmul dword [esp + 0x60]
fld dword [esp + 0x64]
fmul st(4)
faddp st(1)
fld dword [esi + 0x84]
fld dword [esp + 0x70]
fld st(0)
fmulp st(2)
fld dword [esp + 0x34]
fmul qword [0x82dcf0]
faddp st(2)
fld dword [esp + 0x48]
fld st(0)
fmulp st(3)
fxch st(2)
fadd st(3)
fstp dword [esp + 0x48]
call fcn.00437c00
cdq
mov ecx, 0xf4240
idiv ecx
sub edx, 0x7a120
cmp byte [esp + 0x3b], 0
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
fdiv st(5)
fstp dword [esp + 0x34]
fld dword [esp + 0x6c]
fmulp st(4)
fld dword [esp + 0x68]
fmulp st(6)
fxch st(3)
faddp st(5)
fld dword [esi + 0x88]
fmul st(3)
fld dword [esp + 0x34]
fmul qword [0x82dcf0]
faddp st(1)
fmul st(1)
fadd st(5)
fstp dword [esp + 0x40]
je 0x764f26
call fcn.00437c00
cdq
mov ecx, 0xf4240
idiv ecx
sub edx, 0x7a120
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
fdiv st(4)
fstp dword [esp + 0x34]
fld dword [esi + 0x84]
fmul st(3)
fld dword [esp + 0x34]
fld qword [0x82e048]
fmul st(1), st(0)
fxch st(2)
faddp st(1)
fmul st(2)
faddp st(3)
fxch st(2)
fstp dword [esp + 0x48]
call fcn.00437c00
cdq
mov ecx, 0xf4240
idiv ecx
sub edx, 0x7a120
mov dword [esp + 0x34], edx
fild dword [esp + 0x34]
fdiv st(4)
fstp dword [esp + 0x34]
fld dword [esi + 0x88]
fmulp st(3)
fld dword [esp + 0x34]
fmulp st(2)
fxch st(2)
faddp st(1)
fmulp st(1)
faddp st(2)
fxch st(1)
fstp dword [esp + 0x40]
jmp 0x764f2e
fstp st(4)
fstp st(1)
fstp st(2)
fstp st(1)
mov eax, dword [esp + 0x4c]
test eax, eax
je 0x76502d
cmp eax, 7
je 0x76502d
cmp byte [0x88b12a], 0
je 0x764f54
fld dword [0x82e1f0]
jmp 0x764f5a
fld dword [0x82e1ec]
fstp dword [esp + 0x34]
call fcn.00437c00
cdq
mov ecx, 0xf4240
idiv ecx
sub edx, 0x7a120
mov dword [esp + 0x50], edx
fild dword [esp + 0x50]
fdiv st(1)
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fld dword [esp + 0x34]
fld st(0)
fmulp st(2)
fld dword [esp + 0x48]
fld st(0)
faddp st(3)
fxch st(2)
fstp dword [ebx - 8]
call fcn.00437c00
cdq
mov ecx, 0xf4240
idiv ecx
sub edx, 0x7a120
mov dword [esp + 0x50], edx
fild dword [esp + 0x50]
fdiv st(3)
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fmul st(1)
fld dword [esp + 0x40]
fld st(0)
faddp st(2)
fxch st(1)
fstp dword [ebx - 4]
call fcn.00437c00
cdq
mov ecx, 0xf4240
idiv ecx
sub edx, 0x7a120
mov dword [esp + 0x50], edx
fild dword [esp + 0x50]
fdiv st(4)
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fmul st(2)
faddp st(3)
fxch st(2)
fstp dword [ebx]
call fcn.00437c00
cdq
mov ecx, 0xf4240
idiv ecx
mov eax, dword [esp + 0x4c]
sub edx, 0x7a120
mov dword [esp + 0x50], edx
fild dword [esp + 0x50]
fdivrp st(3)
fxch st(2)
fstp dword [esp + 0x50]
fld dword [esp + 0x50]
fmulp st(2)
faddp st(1)
fstp dword [ebx + 4]
jmp 0x765042
fstp st(0)
fld dword [esp + 0x48]
fst dword [ebx - 8]
fld dword [esp + 0x40]
fst dword [ebx - 4]
fstp dword [ebx + 4]
fstp dword [ebx]
inc eax
add ebx, 0x10
cmp eax, 8
mov dword [esp + 0x4c], eax
jl 0x764da5
mov edx, dword [edi + 0x78]
sub edx, dword [edi + 0x74]
mov eax, dword [esp + 0x3c]
inc eax
sar edx, 2
cmp eax, edx
mov dword [esp + 0x3c], eax
jl 0x764c64
fldz
cmp byte [esp + 0x47], 0
jne 0x765121
cmp dword [esp + 0x58], 0
jne 0x765121
cmp dword [esp + 0x5c], 0
jne 0x765121
mov eax, dword [edi + 0x78]
sub eax, dword [edi + 0x74]
test eax, 0xfffffffc
jne 0x765121
mov eax, 0xf8
mov ecx, dword [edi]
mov ecx, dword [eax + ecx - 4]
test ecx, ecx
je 0x7650b3
fst dword [ecx + 0x1c]
mov edx, dword [edi]
mov ecx, dword [eax + edx]
test ecx, ecx
je 0x7650bf
fst dword [ecx + 0x1c]
mov ecx, dword [edi]
mov ecx, dword [eax + ecx + 4]
test ecx, ecx
je 0x7650cc
fst dword [ecx + 0x1c]
mov edx, dword [edi]
mov ecx, dword [eax + edx + 8]
test ecx, ecx
je 0x7650d9
fst dword [ecx + 0x1c]
mov ecx, dword [edi]
mov ecx, dword [eax + ecx + 0xc]
test ecx, ecx
je 0x7650e6
fst dword [ecx + 0x1c]
mov edx, dword [edi]
mov ecx, dword [eax + edx + 0x10]
test ecx, ecx
je 0x7650f3
fst dword [ecx + 0x1c]
mov ecx, dword [edi]
mov ecx, dword [eax + ecx + 0x14]
test ecx, ecx
je 0x765100
fst dword [ecx + 0x1c]
mov edx, dword [edi]
mov ecx, dword [eax + edx + 0x18]
test ecx, ecx
je 0x76510d
fst dword [ecx + 0x1c]
add eax, 0x20
cmp eax, 0x1f8
jl 0x7650a6
mov dword [edi + 0x2e4], 0x32
fstp st(0)
pop esi
pop ebx
mov esp, ebp
pop ebp
ret