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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xffffffc0
sub esp, 0x134
mov eax, dword [ebp + 0x14]
mov edx, dword [ebp + 0x10]
push ebx
mov ebx, dword [ebp + 0xc]
push esi
push edi
push 0
push eax
mov eax, dword [ebp + 8]
push edx
push ebx
push eax
push ecx
mov dword [esp + 0x38], ecx
call fcn.00442530
fld dword [ebx + 0xc]
mov esi, dword [ebx + 0x68]
fnstcw word [esp + 0x14]
movzx eax, word [esp + 0x14]
mov ecx, dword [esi + 0x14]
sub ecx, dword [esi + 0x10]
add esi, 4
or eax, 0xc00
mov dword [esp + 0x34], eax
mov eax, 0x4ec4ec4f
imul ecx
fldcw word [esp + 0x34]
fistp qword [esp + 0x18]
mov edi, dword [esp + 0x18]
sar edx, 4
fldcw word [esp + 0x14]
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
cmp edi, ecx
jb 0x446f46
call fcn.006441b7
imul edi, edi, 0x34
add edi, dword [esi + 0xc]
lea eax, [esp + 0xb4]
mov esi, edi
mov dword [esp + 0x34], esi
call fcn.0057e350
lea ecx, [esp + 0x70]
call fcn.00434800
cmp byte [ebp + 0x1c], 0
jne 0x446f7e
cmp dword [ebx + 8], 0
jg 0x446f7e
cmp byte [esi + 0x18], 0
mov byte [esp + 0x3c], 0
je 0x446f83
mov byte [esp + 0x3c], 1
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
xor edi, edi
add eax, edx
cmp eax, edi
mov dword [esp + 0x44], edi
jle 0x4476f6
mov dword [esp + 0x40], edi
jmp 0x446fb8
mov esi, dword [esp + 0x34]
mov edi, dword [esp + 0x44]
cmp edi, eax
jb 0x446fc1
call fcn.006441b7
mov esi, dword [esi + 0xc]
add esi, dword [esp + 0x40]
cmp byte [esi + 8], 0
mov dword [esp + 0x10], esi
je 0x44703c
mov ecx, dword [ebx + 0x60]
sub ecx, dword [ebx + 0x5c]
mov esi, dword [esi + 4]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x446ff7
call fcn.006441b7
mov edx, dword [ebx + 0x5c]
mov ecx, esi
shl ecx, 4
sub ecx, esi
mov eax, dword [edx + ecx*8 + 4]
mov ecx, dword [eax + 0x40]
mov edx, dword [eax + 0x44]
mov dword [esp + 0x70], ecx
mov ecx, dword [eax + 0x48]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x74], edx
mov edx, dword [eax + 0x4c]
lea esi, [eax + 0x1c]
mov ecx, 9
lea edi, [esp + 0xb4]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x7c], edx
jmp 0x44705a
mov edx, dword [esp + 0x3c]
lea eax, [esp + 0x70]
push eax
lea ecx, [esp + 0xb8]
push ecx
push edx
push edi
mov edi, dword [esp + 0x30]
push ebx
push edi
call fcn.004458a0
lea eax, [esp + 0xd8]
call fcn.0057e350
mov ecx, dword [ebp + 0x10]
test ecx, ecx
jne 0x4470b4
fld1
fcomp dword [edi + 0x104]
fnstsw ax
test ah, 0x44
jnp 0x4470d1
lea eax, [esp + 0x48]
call fcn.0057e350
fld dword [edi + 0x104]
fstp dword [esp + 0x48]
lea edx, [esp + 0xb4]
fld dword [edi + 0x104]
lea eax, [esp + 0x80]
lea ecx, [esp + 0x48]
fstp dword [esp + 0x58]
call fcn.0043d290
mov esi, eax
jmp 0x4470d8
cmp byte [esi + 8], 0
jne 0x4470d1
lea edx, [esp + 0xb4]
lea eax, [esp + 0x80]
call fcn.0043d290
mov esi, eax
jmp 0x4470d8
lea esi, [esp + 0xb4]
mov ecx, 9
lea edi, [esp + 0xd8]
rep movsd dword es:[edi], dword [esi]
mov esi, dword [ebp + 0x14]
mov ecx, dword [esi + 0xc]
imul ecx, dword [esp + 0x7c]
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi + 8]
imul ecx, dword [esp + 0x78]
sar edx, 7
mov eax, edx
shr eax, 0x1f
add eax, edx
push eax
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
push ecx
mov ecx, dword [esi + 4]
imul ecx, dword [esp + 0x7c]
mov eax, 0x80808081
imul ecx
add edx, ecx
mov ecx, dword [esi]
imul ecx, dword [esp + 0x78]
sar edx, 7
mov edi, edx
shr edi, 0x1f
add edi, edx
mov eax, 0x80808081
imul ecx
add edx, ecx
sar edx, 7
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov edx, edi
lea eax, [esp + 0xac]
call fcn.004348b0
cmp dword [esp + 0xb0], 0
je 0x4476c5
mov edi, dword [esp + 0x10]
cmp byte [edi + 8], 0
je 0x4471f7
cmp byte [edi + 9], 0
jne 0x44718d
cmp byte [ebp + 0x18], 0
mov byte [esp + 0x6c], 0
je 0x447192
mov byte [esp + 0x6c], 1
mov ecx, dword [ebx + 0x60]
sub ecx, dword [ebx + 0x5c]
mov esi, dword [edi + 4]
mov eax, 0x88888889
imul ecx
add edx, ecx
sar edx, 6
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x4471b7
call fcn.006441b7
mov eax, dword [esp + 0x3c]
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
push eax
mov eax, dword [esp + 0x70]
mov edx, dword [edx + 0x148]
push eax
lea eax, [esp + 0xac]
push eax
lea eax, [esp + 0xe4]
push eax
mov eax, esi
shl eax, 4
sub eax, esi
mov esi, dword [ebx + 0x5c]
mov eax, dword [esi + eax*8 + 4]
push eax
mov eax, dword [ebp + 8]
push eax
call edx
jmp 0x4476c5
mov ebx, dword [esp + 0x20]
mov ecx, dword [ebx + 0x1c4]
sub ecx, dword [ebx + 0x1c0]
mov esi, dword [edi + 0xc]
mov eax, 0x4bda12f7
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x447224
call fcn.006441b7
imul esi, esi, 0x6c
add esi, dword [ebx + 0x1c0]
lea eax, [esp + 0x48]
lea edx, [esi + 0x48]
lea ecx, [esp + 0xd8]
call fcn.0043d290
mov ebx, dword [ebp + 8]
mov cl, 1
mov eax, ebx
call fcn.00430cc0
lea eax, [esp + 0xa4]
mov ecx, ebx
call fcn.00430c20
cmp byte [ebp + 0x18], 0
jne 0x44726b
cmp byte [edi + 9], 0
jne 0x44726b
mov ecx, dword [esi + 0x44]
jmp 0x447270
mov ecx, 1
mov eax, ebx
call fcn.00430ca0
mov ebx, dword [edi + 0x14]
xor eax, eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x2c], eax
mov dword [esp + 0x30], eax
cmp ebx, eax
je 0x4472da
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp eax, 1
je 0x4472da
cmp ebx, eax
jb 0x4472b4
call fcn.006441b7
mov edx, dword [esi + 0xc]
lea ecx, [ebx + ebx*2]
lea eax, [edx + ecx*4]
call fcn.00466480
mov edi, eax
push 0
lea esi, [esp + 0x110]
mov ecx, edi
mov dword [esp + 0x18], edi
call fcn.0045a130
jmp 0x447319
mov ecx, dword [esi + 0x10]
sub ecx, dword [esi + 0xc]
mov eax, 0x2aaaaaab
imul ecx
sar edx, 1
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
jne 0x4472f7
call fcn.006441b7
mov eax, dword [esi + 0xc]
call fcn.00466480
mov edx, dword [edi + 0x14]
push edx
lea esi, [esp + 0x100]
mov ecx, eax
mov dword [esp + 0x18], eax
call fcn.0045a130
mov edi, dword [esp + 0x14]
mov ecx, dword [eax]
mov dword [esp + 0x24], ecx
mov edx, dword [eax + 4]
mov dword [esp + 0x28], edx
mov ebx, dword [eax + 8]
mov dword [esp + 0x2c], ebx
mov eax, dword [eax + 0xc]
mov dword [esp + 0x30], eax
mov eax, dword [esp + 0x10]
cmp byte [eax + 0x40], 0
je 0x44735a
mov ecx, dword [eax + 0x44]
mov edx, dword [eax + 0x48]
mov ebx, dword [eax + 0x4c]
mov eax, dword [eax + 0x50]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x28], edx
mov dword [esp + 0x2c], ebx
mov dword [esp + 0x30], eax
fld1
mov esi, dword [esp + 0x20]
fld st(0)
fcomp dword [esi + 0x108]
fnstsw ax
test ah, 0x44
jnp 0x4473ef
fstp st(0)
lea eax, [esp + 0x80]
fld dword [esp + 0x50]
fstp dword [esp + 0x38]
fld dword [esp + 0x5c]
fstp dword [esp + 0xc]
call fcn.0057e350
fld dword [esi + 0x108]
lea edx, [esp + 0x48]
fdivr qword [0x7a8008]
lea eax, [esp + 0x11c]
lea ecx, [esp + 0x80]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
fst dword [esp + 0x80]
fstp dword [esp + 0x90]
call fcn.0043d290
fld dword [esp + 0x38]
mov ecx, 9
mov esi, eax
mov edi, edx
rep movsd dword es:[edi], dword [esi]
fstp dword [esp + 0x50]
fld dword [esp + 0xc]
fstp dword [esp + 0x5c]
fld1
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x20]
fcom dword [esi + 0x104]
fnstsw ax
test ah, 0x44
jnp 0x447416
fld dword [esi + 0x104]
fsubr qword [0x7a8008]
fimul dword [esi + 0x174]
fadd dword [esp + 0x50]
fstp dword [esp + 0x50]
fld st(0)
fld dword [esp + 0x48]
fucom st(1)
fnstsw ax
fstp st(1)
fld dword [esp + 0x58]
fld dword [esp + 0x54]
fld dword [esp + 0x4c]
test ah, 0x44
jp 0x4474b1
fldz
fld st(0)
fucomp st(2)
fnstsw ax
test ah, 0x44
jp 0x4474af
fucomp st(2)
fnstsw ax
test ah, 0x44
jp 0x4474b1
fxch st(4)
fucomp st(2)
fnstsw ax
test ah, 0x44
jp 0x4474b3
mov esi, dword [esi + 0x174]
fstp st(2)
fstp st(2)
lea ecx, [esp + 0x24]
fstp st(1)
push ecx
fstp st(0)
sub esp, 8
fld dword [esp + 0x68]
mov edx, esi
fstp dword [esp + 4]
sub edx, ebx
mov eax, dword [ebp + 8]
mov dword [esp + 0x18], edx
fild dword [esp + 0x18]
sub ebx, esi
fld qword [0x87d2f0]
mov dword [esp + 0x18], ebx
fmul st(1), st(0)
fimul dword [esp + 0x18]
fadd dword [esp + 0x5c]
fsubp st(1)
fstp dword [esp + 0x18]
fld dword [esp + 0x18]
fstp dword [esp]
push edi
call fcn.00431f40
jmp 0x4476c2
fstp st(5)
fstp st(4)
cmp dword [esi + 0xd8], 1
je 0x4475aa
fld st(2)
fucomp st(2)
fnstsw ax
fstp st(1)
test ah, 0x44
jp 0x4475a1
fld st(2)
fxch st(1)
fchs
fucompp
fnstsw ax
test ah, 0x44
jp 0x447505
fld st(1)
fld st(1)
fld st(1)
fmulp st(2)
fmul st(0), st(0)
faddp st(1)
fsub qword [0x7a8008]
fabs
fcomp qword [0x82dea8]
fnstsw ax
test ah, 5
jnp 0x4475ae
fstp st(0)
lea eax, [esp + 0x80]
fstp st(0)
call fcn.0057e0f0
fild dword [esp + 0x2c]
fld qword [0x87d2f0]
push eax
lea eax, [esp + 0x120]
fmul st(1), st(0)
lea edx, [esp + 0x4c]
fxch st(1)
fstp dword [esp + 0x8c]
fimul dword [esp + 0x34]
fstp dword [esp + 0x98]
call fcn.0057e110
mov esi, eax
mov ecx, 9
lea edi, [esp + 0x48]
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [esp + 0x20]
mov esi, dword [ebp + 8]
sub esp, 8
fild dword [ecx + 0x174]
mov ecx, dword [esp + 0x1c]
lea edx, [esp + 0x2c]
lea eax, [esp + 0x50]
fsub dword [esp + 0x58]
fstp dword [esp + 0x58]
fld dword [esp + 0x54]
fchs
fstp dword [esp + 0x54]
fld dword [esp + 0x5c]
fchs
fstp dword [esp + 0x5c]
fldz
fst dword [esp + 4]
fstp dword [esp]
push edx
push eax
push ecx
call fcn.00432280
jmp 0x4476c2
fstp st(1)
fstp st(1)
jmp 0x447507
fstp st(1)
fstp st(0)
sub esp, 8
fstp dword [esp + 4]
fstp dword [esp]
call fcn.00409980
fstp dword [esp + 0x14]
add esp, 8
fld dword [esp + 0xc]
fchs
fstp dword [esp + 0x14]
fld dword [esp + 0x14]
fstp dword [esp + 0x10]
fld dword [esp + 0x10]
call fcn.0076fe20
fstp dword [esp + 0xc]
fild dword [esp + 0x2c]
fstp dword [esp + 0x38]
fld dword [esp + 0x10]
call fcn.007701e0
fstp dword [esp + 0x10]
fild dword [esp + 0x30]
sub esp, 0x10
mov esi, dword [esi + 0x174]
mov edx, esi
fstp dword [esp + 0x28]
sub edx, ebx
fld dword [esp + 0x24]
sub ebx, esi
fstp qword [esp + 8]
fld dword [esp + 0x1c]
fld st(0)
fld dword [esp + 0x48]
fld st(0)
fmulp st(2)
fld qword [0x87d2f0]
fmul st(2), st(0)
fld dword [esp + 0x6c]
faddp st(3)
fld dword [esp + 0x20]
fld st(0)
fld dword [esp + 0x28]
fld st(0)
fmulp st(2)
fxch st(1)
fmul st(3)
faddp st(5)
fxch st(4)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fld st(4)
fmul st(3)
fsubp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
mov dword [esp + 0x28], edx
fstp dword [esp + 4]
fild dword [esp + 0x28]
fmul st(2)
fld st(3)
fmulp st(2)
fxch st(1)
fmul st(2)
fadd dword [esp + 0x60]
fxch st(5)
fmulp st(4)
fxch st(3)
fmul st(1)
fsubp st(4)
fxch st(3)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
fxch st(1)
fmul st(3)
fsubp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
mov dword [esp + 0x28], ebx
fild dword [esp + 0x28]
fmulp st(3)
faddp st(2)
fsubrp st(1)
fstp dword [esp + 0x28]
fld dword [esp + 0x28]
mov ecx, dword [ebp + 8]
lea eax, [esp + 0x34]
fstp dword [esp]
mov edx, edi
call fcn.00432060
mov ebx, dword [ebp + 0xc]
mov eax, dword [esp + 0x34]
mov ecx, dword [eax + 0x10]
sub ecx, dword [eax + 0xc]
mov esi, dword [esp + 0x44]
add dword [esp + 0x40], 0x64
mov eax, 0x51eb851f
imul ecx
sar edx, 5
mov eax, edx
shr eax, 0x1f
inc esi
add eax, edx
cmp esi, eax
mov dword [esp + 0x44], esi
jl 0x446fb0
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x10]
mov esi, dword [ebp + 8]
mov edx, dword [esp + 0x20]
push 1
push eax
push ecx
push ebx
push esi
push edx
call fcn.00442530
xor cl, cl
mov eax, esi
call fcn.00430cc0
xor ecx, ecx
call fcn.00430ca0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18