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

Disassembly:
push esi
push ebp
push ebx
mov edx, dword [esp + 0x14]
sub esp, 0x328
mov eax, dword [esp + 0x344]
mov ecx, dword [esp + 0x340]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x18], edx
mov eax, dword [edx + 0x18]
cmp eax, 2
je 0x52af8f
mov esi, dword [esp + 0x338]
cmp eax, 1
je 0x52ae80
cmp eax, 3
je 0x52ad10
cmp eax, 4
je 0x52ac02
cmp eax, 5
je 0x52aaa3
mov dword [esp + 0x318], 0x11d
mov dword [esp], 0
call fcn.004f73c0
mov dword [esp + 0x31c], eax
lea eax, [esp + 0x318]
mov dword [esp], eax
call fcn.004f73d0
add esp, 0x328
xor eax, eax
pop ebx
pop ebp
pop esi
ret
mov edx, dword [edx]
mov dword [esp + 0x320], edx
mov dword [esp], edx
call fcn.0050c8c0
fld dword [0x61eb24]
mov edx, dword [eax]
lea ecx, [esp + 0x2d4]
mov dword [esp + 0x2d4], edx
mov ebx, dword [eax + 4]
lea ebp, [esp + 0x2e4]
mov dword [esp + 0x2d8], ebx
mov dword [esp + 0x324], edi
mov edi, dword [eax + 8]
mov dword [esp + 0x2dc], edi
fdiv dword [eax + 0xc]
fld dword [eax + 0xc]
fld dword [eax + 0xc]
fld dword [eax + 0xc]
fld dword [eax + 0xc]
fld dword [eax + 0xc]
fld dword [eax + 0xc]
fxch st(5)
mov eax, dword [eax + 0xc]
mov dword [esp + 0x2f8], edx
mov dword [esp + 0x2fc], ebx
mov dword [esp + 0x2ec], edx
fsubr dword [esp + 0x2f8]
fxch st(4)
mov dword [esp + 0x300], edi
mov dword [esp + 0x2f4], edi
fsubr dword [esp + 0x2fc]
fxch st(6)
mov dword [esp + 0x2f0], ebx
mov dword [esp + 0x2e0], eax
fstp dword [esp + 0x2e8]
fadd dword [esp + 0x2f0]
fxch st(3)
fstp dword [esp + 0x2f8]
fadd dword [esp + 0x2ec]
fxch st(4)
fstp dword [esp + 0x2fc]
fsubr dword [esp + 0x300]
fxch st(3)
fstp dword [esp + 0x2ec]
fstp dword [esp + 0x2f0]
fadd dword [esp + 0x2f4]
fxch st(1)
fstp dword [esp + 0x300]
mov dword [esp + 0x2e4], ecx
mov dword [esp + 0x310], ebp
fstp dword [esp + 0x2f4]
mov dword [esp + 0x308], 0x52a010
lea eax, [esp + 0x18]
mov dword [esp + 0x30c], 0x5298d0
lea edx, [esp + 0x2ec]
mov dword [esp + 4], fcn.0052a3d0
mov dword [esp + 0x314], eax
mov dword [esp + 8], edx
mov edx, dword [esp + 0x320]
mov dword [esp], edx
mov edi, dword [esp + 0x324]
call fcn.00510dd0
add esp, 0x328
mov eax, esi
pop ebx
pop ebp
pop esi
ret
mov eax, dword [edx]
lea ecx, [esp + 0x18]
mov dword [esp + 0x1a8], eax
mov eax, dword [edx + 4]
xor ebx, ebx
mov dword [esp + 0x1ac], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x1b0], eax
mov eax, dword [edx + 0xc]
mov dword [esp + 0x1b4], eax
mov eax, dword [edx + 0x10]
mov dword [esp + 0x1b8], eax
mov edx, dword [edx + 0x14]
mov dword [esp + 0x1d0], ecx
mov dword [esp + 0x1bc], edx
mov dword [esp + 0x1c8], 0x5296e0
mov dword [esp + 0x1c4], 0x52a180
mov edx, dword [esi + 0x18]
mov eax, dword [edx]
test eax, eax
jl 0x52acd0
mov ecx, dword [edx]
lea eax, [esp + 0x1b4]
fld dword [edx + 0x10]
mov ebp, edx
mov dword [esp + 0x324], edi
mov edi, eax
fcomp dword [ecx + edi]
fnstsw ax
sahf
mov edi, dword [esp + 0x324]
jbe 0x52ad05
lea eax, [esp + 0x1a8]
mov edx, dword [edx + 8]
fld dword [ebp + 0x14]
mov dword [esp + 0x324], edi
mov edi, eax
fcomp dword [ecx + edi]
fnstsw ax
sahf
mov edi, dword [esp + 0x324]
ja 0x52ac63
inc ebx
mov ebp, dword [ebp + 0xc]
mov dword [esp + ebx*4 + 0x1d4], ebp
jmp 0x52acf1
lea eax, [esp + 0x1a8]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.0052a3d0
test eax, eax
je 0x52acf9
mov eax, ebx
dec ebx
mov edx, dword [esp + eax*4 + 0x1d4]
test ebx, ebx
jge 0x52ac63
add esp, 0x328
mov eax, esi
pop ebx
pop ebp
pop esi
ret
mov edx, dword [edx + 0xc]
jmp 0x52ac63
mov eax, dword [edx]
lea ecx, [esp + 0x18]
mov dword [esp + 0x74], eax
mov ebx, dword [edx + 4]
fld dword [esp + 0x74]
mov dword [esp + 0x78], ebx
mov ebp, dword [edx + 8]
mov dword [esp + 0x84], ebx
mov dword [esp + 0x88], ebp
mov dword [esp + 0x80], eax
mov dword [esp + 0x7c], ebp
fld dword [edx + 0xc]
fsubr dword [esp + 0x80]
fld dword [esp + 0x84]
fld dword [esp + 0x88]
fld dword [esp + 0x78]
fxch st(3)
fstp dword [esp + 0x80]
fld dword [esp + 0x7c]
fxch st(2)
fsub dword [edx + 0xc]
fld dword [0x61eb1c]
fxch st(1)
lea eax, [esp + 0xa0]
xor ebx, ebx
fstp dword [esp + 0x84]
fxch st(1)
fsub dword [edx + 0xc]
fstp dword [esp + 0x88]
fxch st(3)
fadd dword [edx + 0xc]
fstp dword [esp + 0x74]
fxch st(1)
fadd dword [edx + 0xc]
fstp dword [esp + 0x78]
fadd dword [edx + 0xc]
mov dword [esp + 0xa0], edx
fstp dword [esp + 0x7c]
fdiv dword [edx + 0xc]
mov dword [esp + 0x9c], ecx
mov dword [esp + 0x98], eax
mov dword [esp + 0x94], 0x5298d0
mov dword [esp + 0x90], 0x52a010
fstp dword [esp + 0xa4]
mov edx, dword [esi + 0x18]
mov eax, dword [edx]
test eax, eax
jl 0x52ae40
mov ecx, dword [edx]
lea eax, [esp + 0x80]
fld dword [edx + 0x10]
mov ebp, edx
mov dword [esp + 0x324], edi
mov edi, eax
fcomp dword [ecx + edi]
fnstsw ax
sahf
mov edi, dword [esp + 0x324]
jbe 0x52ae6e
lea eax, [esp + 0x74]
mov edx, dword [edx + 8]
fld dword [ebp + 0x14]
mov dword [esp + 0x324], edi
mov edi, eax
fcomp dword [ecx + edi]
fnstsw ax
sahf
mov edi, dword [esp + 0x324]
ja 0x52ade4
inc ebx
mov ebp, dword [ebp + 0xc]
mov dword [esp + ebx*4 + 0xa8], ebp
jmp 0x52ae5e
lea eax, [esp + 0x74]
mov dword [esp], edx
mov dword [esp + 4], eax
call fcn.0052a3d0
test eax, eax
je 0x52ae62
mov eax, ebx
dec ebx
mov edx, dword [esp + eax*4 + 0xa8]
test ebx, ebx
jge 0x52ade4
add esp, 0x328
mov eax, esi
pop ebx
pop ebp
pop esi
ret
mov edx, dword [edx + 0xc]
jmp 0x52ade4
mov dword [esp + 0x60], edx
lea eax, [esp + 0x18]
fld dword [edx + 0xc]
fsub dword [edx]
fld dword [0x61eae8]
fxch st(1)
fstp dword [esp + 0x64]
fld dword [edx + 0x10]
fsub dword [edx + 4]
fstp dword [esp + 0x68]
fld dword [edx + 0x14]
fsub dword [edx + 8]
fxch st(1)
mov dword [esp + 0x70], eax
fcomp dword [esp + 0x64]
fnstsw ax
fstp dword [esp + 0x6c]
sahf
fld dword [esp + 0x64]
je 0x52af82
fdivr dword [0x61eaf0]
fld dword [esp + 0x68]
fmul st(1)
fld dword [esp + 0x68]
fxch st(2)
fmul dword [esp + 0x6c]
fld dword [0x61eaf4]
fcomp st(3)
fnstsw ax
fstp dword [esp + 0x30]
fstp dword [esp + 0x2c]
sahf
je 0x52af75
fdivr dword [0x61eafc]
fld dword [esp + 0x64]
fmul st(1)
fld dword [esp + 0x6c]
fxch st(2)
fmul dword [esp + 0x6c]
fld dword [0x61eb00]
fcomp st(3)
fnstsw ax
fstp dword [esp + 0x38]
fstp dword [esp + 0x34]
sahf
je 0x52af6b
fdivr dword [0x61eb08]
fld dword [esp + 0x64]
fmul st(1)
fxch st(1)
lea eax, [esp + 0x2c]
lea ecx, [esp + 0x44]
fmul dword [esp + 0x68]
fxch st(1)
lea ebx, [esp + 0x2c]
mov dword [esp + 0x10], eax
fstp dword [esp + 0x3c]
fstp dword [esp + 0x40]
mov dword [esp + 0xc], 0x52a370
mov dword [esp + 0x14], ecx
mov ecx, ebx
mov eax, esi
call fcn.00528440
add esp, 0x328
mov eax, esi
pop ebx
pop ebp
pop esi
ret
fstp st(0)
fld dword [0x61eb0c]
jmp 0x52af24
fstp st(0)
fld dword [0x61eb10]
jmp 0x52aef9
fstp st(0)
fld dword [0x61eb14]
jmp 0x52aeca
mov dword [esp + 0x24], 0x11d
mov dword [esp], 0
call fcn.004f73c0
mov dword [esp + 0x28], eax
lea eax, [esp + 0x24]
mov dword [esp], eax
call fcn.004f73d0
add esp, 0x328
xor eax, eax
pop ebx
pop ebp
pop esi
ret