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

Disassembly:
push ebx
push esi
mov ebx, ecx
push edi
push ebp
sub esp, 0x68
mov eax, dword [ebx + 0x244]
cmp eax, 0x2a
mov ebp, dword [esp + 0x7c]
je 0x523ced
cmp eax, 0x36
jne 0x523d13
cmp dword [ebx + 0x3f8], 0
je 0x523d03
mov dl, byte [ebp + 0x50]
shr dl, 3
movzx eax, dl
test eax, eax
jne 0x523d09
mov dword [ebx + 0x3f8], ebp
add esp, 0x68
pop ebp
pop edi
pop esi
pop ebx
ret 8
cmp eax, 0x37
jne 0x523d22
add esp, 0x68
pop ebp
pop edi
pop esi
pop ebx
ret 8
mov esi, dword [ebx + 0x394]
test esi, esi
je 0x523d65
mov al, byte [esi + 0x50]
and al, 7
cmp al, 2
jne 0x523d65
mov eax, dword [esi + 0x29c]
cmp eax, 1
jne 0x523d50
add esp, 0x68
pop ebp
pop edi
pop esi
pop ebx
ret 8
mov ecx, ebx
call fcn.004f4930
test al, al
je 0x523d65
add esp, 0x68
pop ebp
pop edi
pop esi
pop ebx
ret 8
mov dword [esp + 0x10], ebx
add dword [esp + 0x10], 4
add dword [esp + 0x10], 0x30
mov edi, dword [esp + 0x10]
mov dword [esp + 0x18], ebp
add dword [esp + 0x18], 4
add dword [esp + 0x18], 0x30
mov eax, dword [esp + 0x18]
fld dword [edi]
fsub dword [eax]
fstp dword [esp + 0x5c]
fld dword [edi + 4]
fsub dword [eax + 4]
lea esi, [esp + 0x5c]
fstp dword [esp + 0x60]
fld dword [edi + 8]
fsub dword [eax + 8]
lea edi, [esp + 0x40]
fstp dword [esp + 0x64]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
fld dword [esp + 0x80]
fcomp dword [0x6941c0]
fnstsw ax
test ah, 0x45
je 0x523dd1
movsx eax, word [ebp + 0x5c]
cmp eax, 0xffffffff
jne 0x524670
mov ecx, ebx
call fcn.004f4930
test al, al
jne 0x524670
mov byte [esp + 0x1c], 0
call fcn.006499f0
and al, 3
mov dword [esp + 0x24], 0x27
mov byte [esp + 0x20], al
call fcn.004bc1e0
cmp ebp, eax
fldz
jne 0x523eed
fld dword [ebp + 0x74]
fst st(1)
fmul st(0)
fld dword [ebp + 0x70]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fld dword [ebp + 0x78]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fst st(1)
fsqrt
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp st(1)
fld dword [0x6941c4]
fmul st(1)
fmul dword [0x6941c8]
fdiv dword [ebp + 0xb8]
fadd dword [0x6941cc]
fcomp dword [0x6941d0]
fnstsw ax
test ah, 0x45
jne 0x523e61
fld dword [0x6941d0]
jmp 0x523ea6
fld dword [ebp + 0x74]
fst st(1)
fmul st(0)
fld dword [ebp + 0x70]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fld dword [ebp + 0x78]
fstp st(2)
fld st(1)
fmul st(0)
faddp st(1)
fst st(1)
fsqrt
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp st(1)
fld dword [0x6941c4]
fmul st(1)
fmul dword [0x6941c8]
fdiv dword [ebp + 0xb8]
fadd dword [0x6941cc]
fstp st(1)
fld st(0)
fnstcw word [esp + 0x28]
mov eax, dword [esp + 0x28]
or byte [esp + 0x29], 0xc
fldcw word [esp + 0x28]
fistp dword [esp + 0x38]
mov edx, dword [esp + 0x38]
mov dword [esp + 0x28], eax
mov al, dl
push eax
mov eax, 0x9c40
movzx ecx, dl
cdq
fldcw word [esp + 0x2c]
fstp st(0)
idiv ecx
push eax
push 0
call fcn.004ab060
pop ecx
mov ecx, eax
call fcn.004ad2e0
fldz
mov al, byte [ebx + 0x14c]
mov ecx, ebx
and al, 0xfe
mov byte [ebx + 0x14c], al
fld dword [ebp + 0x74]
fchs
fstp st(1)
fld dword [ebp + 0x70]
fchs
fstp dword [esp + 0x4c]
lea eax, [esp + 0x4c]
push eax
fst dword [esp + 0x54]
fstp st(0)
call fcn.005035f0
mov dword [esp + 0x14], eax
lea edx, [ebp + 4]
movsx esi, word [ebp + 0x5c]
fldz
fldz
mov eax, dword [esi*4 + 0x92d4c8]
mov edi, dword [eax + 0x1c]
mov ecx, edi
fldz
fldz
fldz
fld dword [ecx + 0x1c]
fstp st(3)
fld dword [esp + 0x44]
fstp st(5)
fld st(4)
fmul dword [edx + 4]
fld dword [esp + 0x40]
fmul dword [edx]
faddp st(1)
fld dword [esp + 0x48]
fstp st(5)
fld st(4)
fmul dword [edx + 8]
mov dword [esp + 0xc], ebp
add dword [esp + 0xc], 4
add dword [esp + 0xc], 0x20
mov ecx, dword [esp + 0xc]
faddp st(1)
fstp st(2)
fld st(4)
fmul dword [ecx + 4]
fld dword [esp + 0x40]
fmul dword [ecx]
cmp esi, 0xffffffff
faddp st(1)
fld st(4)
fmul dword [ecx + 8]
faddp st(1)
fstp dword [esp + 0x2c]
jne 0x524000
fld dword [0x6941d4]
mov dword [esp + 0x24], 0x28
mov byte [esp + 0x1c], 2
fmul dword [ebp + 0x78]
fstp st(4)
fld dword [0x6941d4]
fmul dword [ebp + 0x74]
fstp st(5)
fld dword [0x6941d4]
fmul dword [ebp + 0x70]
fstp dword [ebx + 0x70]
fld st(4)
fstp dword [ebx + 0x74]
fld st(3)
fstp dword [ebx + 0x78]
mov dword [ebx + 0x78], 0
cmp dword [esp + 0x14], 1
je 0x523fe2
cmp dword [esp + 0x14], 3
jne 0x523fea
mov dword [esp + 0x14], 2
cmp byte [0x68dd68], 0
je 0x5248c0
jmp 0x524543
mov dword [esp + 8], ebp
add dword [esp + 8], 4
add dword [esp + 8], 0x10
lea ecx, [ebp + 0x70]
fld dword [ecx + 4]
mov edx, dword [esp + 8]
fmul dword [edx + 4]
fld dword [ecx]
fmul dword [edx]
faddp st(1)
fld dword [ecx + 8]
fmul dword [edx + 8]
faddp st(1)
fcomp dword [0x69414c]
fnstsw ax
and ah, 5
cmp ah, 1
je 0x5248d0
fld st(1)
fcomp dword [0x69414c]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x524055
fld st(1)
fchs
jmp 0x524057
fld st(1)
fstp st(1)
fld dword [0x6941d8]
fmul st(3)
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x524130
fld st(1)
fcomp dword [0x69414c]
fnstsw ax
test ah, 0x45
jne 0x524087
mov byte [esp + 0x1c], 4
jmp 0x52408c
mov byte [esp + 0x1c], 3
fld dword [0x6941dc]
fmul dword [edi + 0x20]
mov eax, dword [esp + 8]
fstp st(3)
fld st(4)
fmul dword [eax + 4]
fld dword [esp + 0x40]
fmul dword [eax]
faddp st(1)
fld st(4)
fmul dword [eax + 8]
faddp st(1)
fabs
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
fstp st(5)
fld st(4)
fcomp st(3)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5248e0
fld dword [0x6941d4]
mov dword [esp + 0x24], 0x28
fmul dword [ebp + 0x78]
fstp st(4)
fld dword [0x6941d4]
fmul dword [ebp + 0x74]
fstp st(5)
fld dword [0x6941d4]
fmul dword [ebp + 0x70]
fstp dword [ebx + 0x70]
fld st(4)
fstp dword [ebx + 0x74]
fld st(3)
fstp dword [ebx + 0x78]
mov dword [ebx + 0x78], 0
cmp dword [esp + 0x14], 1
je 0x524116
cmp dword [esp + 0x14], 3
jne 0x52411e
mov dword [esp + 0x14], 2
cmp byte [0x68dd68], 0
je 0x5248f0
jmp 0x524543
fld dword [esp + 0x2c]
fcomp dword [0x694194]
fnstsw ax
test ah, 0x45
jne 0x524148
cmp byte [esp + 0x20], 1
ja 0x524153
cmp byte [esp + 0x20], 0
jne 0x5244e0
mov byte [esp + 0x1c], 1
mov eax, dword [esp + 8]
fld dword [edi + 0x20]
fstp st(5)
fld st(4)
fstp st(3)
fld dword [edi + 0x14]
fstp st(2)
fld dword [edi + 0x24]
fstp st(4)
fld dword [eax + 8]
fst st(1)
fcomp dword [0x6941e0]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5241b6
fld st(1)
mov eax, dword [esp + 8]
fmul dword [eax + 8]
mov eax, dword [esp + 0xc]
fstp st(5)
fld st(3)
fmul dword [eax + 8]
mov eax, dword [esp + 0x18]
fstp st(4)
fld dword [eax + 8]
fadd st(4)
fstp st(4)
fld st(3)
fadd st(5)
fstp st(4)
fld st(1)
fchs
fadd st(3)
jmp 0x52424c
fcom dword [0x694194]
fnstsw ax
test ah, 0x45
jne 0x524230
fld st(2)
mov eax, dword [esp + 8]
fmul dword [eax + 8]
mov eax, dword [esp + 0xc]
fstp st(5)
fld st(3)
fmul dword [eax + 8]
mov eax, dword [esp + 0x18]
fstp st(4)
fld dword [eax + 8]
fadd st(4)
fstp st(4)
mov eax, dword [esp + 0x10]
fld st(3)
fadd st(5)
fstp st(2)
fld st(1)
fstp st(4)
fld st(2)
fstp st(5)
fld st(1)
fsub dword [eax + 8]
fstp st(3)
fld st(2)
fcomp dword [0x69414c]
fnstsw ax
test ah, 0x45
jne 0x52424e
fld dword [0x694180]
fmul st(3)
fadd dword [ebx + 0x3c]
fstp dword [ebx + 0x3c]
mov eax, dword [esp + 0x10]
fld st(1)
fsub dword [eax + 8]
fmul dword [0x69418c]
faddp st(4)
jmp 0x52424e
fld st(3)
mov eax, dword [esp + 0xc]
fmul dword [eax + 8]
mov eax, dword [esp + 0x18]
fstp st(4)
fld dword [eax + 8]
fadd st(4)
fstp st(4)
fld st(3)
fstp st(4)
fld st(4)
fstp st(5)
fld dword [ebp + 0x74]
fstp st(3)
fld st(2)
fmul st(0)
fld dword [ebp + 0x70]
fstp st(4)
fld st(3)
fmul st(0)
faddp st(1)
fld dword [ebp + 0x78]
fstp st(4)
fld st(3)
fmul st(0)
faddp st(1)
fstp st(3)
fld st(2)
fsqrt
fstp dword [esp + 0x38]
fld dword [esp + 0x38]
mov eax, dword [esp + 0x10]
fstp st(3)
fld st(3)
fsub dword [eax + 8]
fld st(5)
fdiv st(4)
fdivp st(1)
fstp dword [esp + 0x30]
fcompp
fcompp
fstp st(0)
call fcn.006499f0
movzx eax, ax
and eax, 0xff
mov dword [esp + 0x38], eax
fild dword [esp + 0x38]
fmul qword [0x6941e8]
fadd qword [0x694168]
fmul dword [esp + 0x30]
fstp dword [esp + 0x38]
mov eax, dword [esp + 0x38]
mov dword [esp + 0x34], eax
fld dword [ebp + 0x70]
fstp dword [esp + 0x40]
fld dword [ebp + 0x74]
fstp dword [esp + 0x44]
fld dword [ebp + 0x78]
lea ecx, [esp + 0x40]
fstp dword [esp + 0x48]
call fcn.004dfea0
fldz
fldz
fldz
fld dword [0x6941f0]
fmul dword [esp + 0x34]
cmp dword [esp + 0x14], 1
fst st(1)
fmul dword [esp + 0x48]
fstp st(2)
fld st(0)
fmul dword [esp + 0x44]
fstp st(3)
fld st(0)
fmul dword [esp + 0x40]
fstp dword [esp + 0x40]
fld st(2)
fstp dword [esp + 0x44]
fld st(1)
fstp dword [esp + 0x48]
je 0x524329
cmp dword [esp + 0x14], 3
jne 0x524340
fld dword [0x6941f4]
fmul dword [esp + 0x34]
fadd dword [esp + 0x48]
jmp 0x524348
fld dword [esp + 0x48]
fadd dword [esp + 0x34]
fstp dword [esp + 0x48]
fld dword [esp + 0x40]
fstp dword [ebx + 0x70]
fld dword [esp + 0x44]
fstp dword [ebx + 0x74]
fld dword [esp + 0x48]
fstp dword [ebx + 0x78]
add dword [esp + 0x14], 2
cmp dword [esp + 0x14], 3
jle 0x524372
sub dword [esp + 0x14], 4
cmp dword [ebp + 0x29c], 0
jne 0x5248b0
fcompp
mov ecx, ebp
fstp st(0)
call fcn.00592ba0
mov esi, eax
test esi, esi
je 0x5248b7
call fcn.006499f0
movzx eax, ax
fldz
fldz
and eax, 1
je 0x5243f5
fld dword [0x694180]
mov ecx, dword [esp + 0xc]
lea edx, [ebp + 4]
fmul dword [ecx + 8]
fld dword [0x694194]
fmul dword [edx + 8]
lea edi, [ebx + 0x70]
fadd dword [edi + 8]
faddp st(1)
fstp st(1)
fld dword [0x694180]
fmul dword [ecx + 4]
fld dword [0x694194]
fmul dword [edx + 4]
fadd dword [edi + 4]
faddp st(1)
fstp st(2)
fld dword [0x694180]
fmul dword [ecx]
fld dword [0x694194]
fmul dword [edx]
fadd dword [edi]
jmp 0x524443
fld dword [0x694180]
mov ecx, dword [esp + 0xc]
lea edx, [ebp + 4]
fmul dword [ecx + 8]
fld dword [0x694194]
fmul dword [edx + 8]
lea edi, [ebx + 0x70]
fsubr dword [edi + 8]
faddp st(1)
fstp st(1)
fld dword [0x694180]
fmul dword [ecx + 4]
fld dword [0x694194]
fmul dword [edx + 4]
fsubr dword [edi + 4]
faddp st(1)
fstp st(2)
fld dword [0x694180]
fmul dword [ecx]
fld dword [0x694194]
fmul dword [edx]
fsubr dword [edi]
faddp st(1)
fstp dword [esi + 0x70]
fld st(1)
fstp dword [esi + 0x74]
fst dword [esi + 0x78]
mov eax, dword [esp + 8]
mov ecx, esi
fld dword [0x6941f8]
push dword [eax + 8]
push dword [eax + 4]
push dword [eax]
mov eax, dword [esp + 0x18]
fmul dword [eax + 8]
push eax
fstp dword [esp]
mov eax, dword [esp + 0x1c]
fld dword [0x6941f8]
fmul dword [eax + 4]
push eax
fstp dword [esp]
mov eax, dword [esp + 0x20]
fld dword [0x6941f8]
fmul dword [eax]
push eax
fstp dword [esp]
fcompp
call fcn.004bacc0
fldz
fldz
mov eax, dword [esp + 0x10]
fld dword [eax + 8]
mov eax, dword [esp + 0x18]
fsub dword [eax + 8]
mov eax, dword [esp + 0x10]
fstp st(1)
fld dword [eax + 4]
mov eax, dword [esp + 0x18]
fsub dword [eax + 4]
mov eax, dword [esp + 0x10]
fstp st(2)
fld dword [eax]
mov eax, dword [esp + 0x18]
fsub dword [eax]
fstp dword [esp + 0x40]
fld st(1)
fstp dword [esp + 0x44]
fst dword [esp + 0x48]
jmp 0x524900
fld dword [0x6941d4]
mov dword [esp + 0x24], 0x28
mov byte [esp + 0x1c], 2
fmul dword [ebp + 0x78]
fstp st(4)
fld dword [0x6941d4]
fmul dword [ebp + 0x74]
fstp st(5)
fld dword [0x6941d4]
fmul dword [ebp + 0x70]
fstp dword [ebx + 0x70]
fld st(4)
fstp dword [ebx + 0x74]
fld st(3)
fstp dword [ebx + 0x78]
mov dword [ebx + 0x78], 0
cmp dword [esp + 0x14], 1
je 0x52452e
cmp dword [esp + 0x14], 3
jne 0x524536
mov dword [esp + 0x14], 2
cmp byte [0x68dd68], 0
je 0x524907
fcompp
fcompp
mov eax, dword [ebp + 0x64]
mov ecx, 0xa10b8a
push dword [0x69414c]
push 0xa5
push eax
fstp st(0)
call fcn.005f9da0
mov eax, dword [ebp + 0x1a8]
test eax, eax
je 0x524595
cmp dword [ebx + 0x3d4], 6
jne 0x524582
push 0x3e8
push eax
push ebx
push 1
push 0xa
jmp 0x52458d
push 0x3e8
push eax
push ebx
push 1
push 9
call fcn.0048a0d0
add esp, 0x14
movzx eax, byte [esp + 0x1c]
dec eax
cmp eax, 3
ja case.0x5245a0.1
jmp dword [eax*4 + 0x694358]
push dword [esp + 0x14]
push 3
jmp 0x5245c8
mov al, byte [esp + 0x14]
push eax
push 2
jmp 0x5245c8
mov al, byte [esp + 0x14]
push eax
push 6
jmp 0x5245c8
mov al, byte [esp + 0x14]
push eax
push 1
mov ecx, ebx
push dword [0x6941fc]
push dword [esp + 0x30]
push ebp
call fcn.00525b20
mov eax, dword [ebx + 0x244]
cmp eax, 0x36
je 0x5245ea
cmp eax, 0x37
jne 0x524606
mov al, byte [ebx + 0x14f]
shr al, 4
and al, 1
je 0x524606
cmp dword [ebx + 0x3f8], 0
jne 0x524606
mov dword [ebx + 0x3f8], ebp
cmp byte [esp + 0x1c], 1
jne 0x524620
mov al, byte [ebx + 0x153]
and al, 0xfe
or al, 1
jmp 0x524628
mov al, byte [ebx + 0x153]
and al, 0xfe
mov byte [ebx + 0x153], al
lea ecx, [esp + 0x40]
call fcn.004dfea0
fldz
fld dword [ebp + 0xb8]
fmul dword [0x694200]
fstp st(1)
fld dword [0x694148]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x524661
fld dword [0x694148]
fstp st(1)
fld dword [0x694204]
jmp 0x52483f
fld dword [ebx + 0x114]
fcomp dword [0x694208]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x52469a
fld dword [esp + 0x80]
fcomp dword [0x69420c]
fnstsw ax
test ah, 0x45
je 0x5246d5
fld dword [esp + 0x80]
fcomp dword [0x6941b0]
fnstsw ax
test ah, 0x45
jne 0x524874
mov ecx, ebx
call fcn.004f4930
test al, al
je 0x5246d5
fld dword [esp + 0x80]
fcomp dword [0x6941f8]
fnstsw ax
test ah, 0x45
jne 0x524874
mov al, byte [ebx + 0x14c]
mov ecx, ebx
and al, 0xfe
mov byte [ebx + 0x14c], al
fldz
fld dword [ebp + 0x74]
fchs
fstp st(1)
fld dword [ebp + 0x70]
fchs
fstp dword [esp + 0x54]
lea eax, [esp + 0x54]
push eax
fst dword [esp + 0x5c]
fstp st(0)
call fcn.005035f0
mov ecx, ebx
mov dword [esp], eax
call fcn.004f4930
test al, al
je 0x524730
movsx eax, word [ebp + 0x5c]
cmp eax, 0xffffffff
jne 0x524730
mov al, byte [esp]
push eax
push 0
push dword [0x694210]
jmp 0x52473c
mov al, byte [esp]
push eax
push 0
push dword [0x694214]
mov ecx, ebx
push 0x27
push ebp
call fcn.00525b20
mov ecx, ebx
add dword [esp], 0x19
push 1
push dword [esp + 4]
push 0x3e8
call fcn.004fd9f0
mov eax, dword [ebx + 0x244]
cmp eax, 0x2a
je 0x524771
cmp eax, 0x36
je 0x524771
cmp eax, 0x37
jne 0x5247b1
cmp dword [ebx + 0x3f8], 0
jne 0x5247b1
mov ecx, ebx
call fcn.004f4930
test al, al
je 0x5247ab
mov al, byte [ebx + 0x54]
and al, 1
jne 0x5247ab
movsx eax, word [ebp + 0x5c]
cmp eax, 0xffffffff
je 0x5247ab
fld dword [ebx + 0x114]
fcomp dword [0x694208]
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x5247b1
mov dword [ebx + 0x3f8], ebp
mov al, byte [ebx + 0x153]
and al, 0xfe
mov byte [ebx + 0x153], al
movsx eax, word [ebp + 0x5c]
fldz
fldz
cmp eax, 0xffffffff
je 0x5247fd
mov al, byte [ebx + 0x54]
and al, 1
jne 0x5247fd
fld dword [0x694218]
fmul dword [ebp + 0x78]
fstp st(1)
fld dword [0x694218]
fmul dword [ebp + 0x74]
fstp st(2)
fld dword [0x694218]
fmul dword [ebp + 0x70]
fstp dword [ebx + 0x70]
fld st(1)
fstp dword [ebx + 0x74]
fst dword [ebx + 0x78]
fcompp
mov dword [ebx + 0x78], 0
lea ecx, [esp + 0x40]
call fcn.004dfea0
fldz
fld dword [ebp + 0xb8]
fmul dword [0x694200]
fstp st(1)
fld dword [0x694148]
fcomp st(1)
fnstsw ax
and ah, 5
cmp ah, 1
jne 0x524839
fld dword [0x694148]
fstp st(1)
fld dword [0x69421c]
fmul st(1)
fst st(1)
fmul dword [esp + 0x48]
push eax
mov ecx, ebp
fstp dword [esp]
fld st(0)
fmul dword [esp + 0x48]
push eax
fstp dword [esp]
fld st(0)
fmul dword [esp + 0x48]
push eax
fstp dword [esp]
fstp st(0)
call fcn.004badc0
mov ecx, ebx
push 0x8b
call fcn.005226b0
mov ecx, ebx
call fcn.004f4910
test al, al
je 0x5248a0
mov ecx, dword [ebp + 0x1a8]
test ecx, ecx
je 0x5248a0
call fcn.004f4930
test al, al
je 0x5248a0
mov eax, dword [ebp + 0x1a8]
mov ecx, ebx
push eax
call fcn.00514360
add esp, 0x68
pop ebp
pop edi
pop esi
pop ebx
ret 8
fstp st(0)
jmp 0x52449b
fldz
fldz
jmp 0x52449b
fcompp
fcompp
fstp st(0)
jmp 0x524562
fcompp
fcompp
fstp st(0)
jmp 0x524562
fcompp
fcompp
fstp st(0)
jmp 0x524562
fcompp
fcompp
fstp st(0)
jmp 0x524562
fcompp
jmp 0x524562
fcompp
fcompp
fstp st(0)
jmp 0x524562