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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff5c
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0xa4], ecx
mov dword [ebp - 0x90], ecx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x30], ecx
mov dword [ebp - 4], edx
mov ebx, eax
xor eax, eax
push ebp
push 0x51aabd
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [ebx + 0x3c0], eax
xor eax, eax
mov dword [ebx + 0x3c4], eax
mov byte [ebx + 0x3ac], 0
cmp dword [ebp - 4], 1
jl 0x51aa86
cmp dword [ebp - 4], 5
jg 0x51aa86
mov esi, 0x14
mov dword [ebx + 0x3b0], esi
push esi
lea eax, [ebx + 0x3b4]
mov ecx, 1
mov edx, dword [0x519bf0]
call fcn.0040892c
add esp, 4
mov eax, dword [ebx + 0x3b0]
push eax
lea eax, [ebx + 0x3b8]
mov ecx, 1
mov edx, dword [0x519bf0]
call fcn.0040892c
add esp, 4
mov eax, dword [ebp - 4]
inc eax
push eax
lea eax, [ebx + 0x3bc]
mov ecx, 1
mov edx, dword [0x519c2c]
call fcn.0040892c
add esp, 4
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax], edx
mov dword [eax + 4], 0x40542000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 8], edx
mov dword [eax + 0xc], 0x40546000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x10], edx
mov dword [eax + 0x14], 0x4054a000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x18], edx
mov dword [eax + 0x1c], 0x4054e000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x20], edx
mov dword [eax + 0x24], 0x40552000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x28], edx
mov dword [eax + 0x2c], 0x40556000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x30], edx
mov dword [eax + 0x34], 0x4055a000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x38], edx
mov dword [eax + 0x3c], 0x4055e000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x40], edx
mov dword [eax + 0x44], 0x40562000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x48], edx
mov dword [eax + 0x4c], 0x40566000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x50], edx
mov dword [eax + 0x54], 0x4056a000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x58], edx
mov dword [eax + 0x5c], 0x4056e000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x60], edx
mov dword [eax + 0x64], 0x40572000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x68], edx
mov dword [eax + 0x6c], 0x40576000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x70], edx
mov dword [eax + 0x74], 0x4057a000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x78], edx
mov dword [eax + 0x7c], 0x4057e000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x80], edx
mov dword [eax + 0x84], 0x40582000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x88], edx
mov dword [eax + 0x8c], 0x40586000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x90], edx
mov dword [eax + 0x94], 0x4058a000
mov eax, dword [ebx + 0x3b4]
xor edx, edx
mov dword [eax + 0x98], edx
mov dword [eax + 0x9c], 0x4058e000
mov eax, dword [ebx + 0x3b8]
mov dword [eax], 0xd5885d31
mov dword [eax + 4], 0xc001811f
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 8], 0x5ee99a63
mov dword [eax + 0xc], 0xc000f527
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x10], 0x98915be
mov dword [eax + 0x14], 0xbffff86a
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x18], 0x64adff82
mov dword [eax + 0x1c], 0xbffe86c7
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x20], 0xaee2003b
mov dword [eax + 0x24], 0xbffd055e
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x28], 0x2fb5d03
mov dword [eax + 0x2c], 0xbffbe17a
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x30], 0x55e28aa4
mov dword [eax + 0x34], 0xbffa76d6
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x38], 0xccd96207
mov dword [eax + 0x3c], 0xbff92921
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x40], 0x2474538f
mov dword [eax + 0x44], 0xbff83f97
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x48], 0x2324c836
mov dword [eax + 0x4c], 0xbff76167
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x50], 0xa8869c67
mov dword [eax + 0x54], 0xbff51fc2
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x58], 0x7e521577
mov dword [eax + 0x5c], 0xbff3ed52
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x60], 0x98915bdd
mov dword [eax + 0x64], 0xbff246a0
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x68], 0xfabda0e0
mov dword [eax + 0x6c], 0xbff06878
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x70], 0xb089a027
mov dword [eax + 0x74], 0xbfece9e1
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x78], 0xf05ea24d
mov dword [eax + 0x7c], 0xbfe8ce69
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x80], 0x1c3ac92a
mov dword [eax + 0x84], 0xbfe7255d
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x88], 0x2f48c2e7
mov dword [eax + 0x8c], 0xbfe2f76a
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x90], 0xb63d3e4f
mov dword [eax + 0x94], 0xbfdac065
mov eax, dword [ebx + 0x3b8]
mov dword [eax + 0x98], 0x7ecfe9b8
mov dword [eax + 0x9c], 0xbfdc88a4
mov eax, dword [ebx + 0x3a8]
mov edx, dword [eax]
call dword [edx + 0xf8]
test al, al
je 0x51a7c9
mov eax, dword [ebx + 0x3b0]
add eax, eax
push eax
lea eax, [ebx + 0x3b4]
mov ecx, 1
mov edx, dword [0x519bf0]
call fcn.0040892c
add esp, 4
mov eax, dword [ebx + 0x3b0]
add eax, eax
push eax
lea eax, [ebx + 0x3b8]
mov ecx, 1
mov edx, dword [0x519bf0]
call fcn.0040892c
add esp, 4
mov eax, dword [ebx + 0x3b0]
dec eax
test eax, eax
jl 0x51a6fb
inc eax
mov dword [ebp - 0x24], eax
xor esi, esi
mov eax, dword [ebx + 0x3b0]
add eax, esi
mov edx, dword [ebx + 0x3b4]
mov ecx, dword [ebx + 0x3b4]
mov edi, dword [ecx + esi*8]
mov dword [edx + eax*8], edi
mov edi, dword [ecx + esi*8 + 4]
mov dword [edx + eax*8 + 4], edi
mov eax, dword [ebx + 0x3b0]
add eax, esi
mov edx, dword [ebx + 0x3b8]
mov ecx, dword [ebx + 0x3b8]
mov edi, dword [ecx + esi*8]
mov dword [edx + eax*8], edi
mov edi, dword [ecx + esi*8 + 4]
mov dword [edx + eax*8 + 4], edi
inc esi
dec dword [ebp - 0x24]
jne 0x51a6b1
mov eax, dword [ebx + 0x3b0]
test eax, eax
jle 0x51a75f
mov dword [ebp - 0x24], eax
mov esi, 1
fld dword [0x51aacc]
mov eax, dword [ebx + 0x3b0]
mov edx, eax
sub edx, esi
add edx, eax
mov eax, dword [ebx + 0x3b4]
fmul qword [eax + edx*8]
mov eax, dword [ebx + 0x3b4]
fstp qword [eax + esi*8 - 8]
wait
fld dword [0x51aacc]
mov eax, dword [ebx + 0x3b0]
mov edx, eax
sub edx, esi
add edx, eax
mov eax, dword [ebx + 0x3b8]
fmul qword [eax + edx*8]
mov eax, dword [ebx + 0x3b8]
fstp qword [eax + esi*8 - 8]
wait
inc esi
dec dword [ebp - 0x24]
jne 0x51a70d
mov edi, dword [ebx + 0x3b8]
mov eax, edi
call fcn.00408780
push eax
mov eax, dword [ebx + 0x3bc]
mov dword [ebp - 0x28], eax
push eax
mov eax, dword [ebp - 0x28]
call fcn.00408780
push eax
lea eax, [ebx + 0x3c8]
push eax
mov eax, dword [ebx + 0x3b0]
add eax, eax
push eax
mov eax, dword [ebp - 4]
push eax
mov esi, dword [ebx + 0x3b4]
mov eax, esi
call fcn.00408780
mov edx, eax
mov ecx, edi
mov eax, esi
call fcn.00519860
mov eax, dword [ebx + 0x3b0]
mov dword [ebx + 0x3c0], eax
mov eax, dword [ebx + 0x3b0]
add eax, eax
dec eax
mov dword [ebx + 0x3c4], eax
jmp 0x51a829
mov edi, dword [ebx + 0x3b8]
mov eax, edi
call fcn.00408780
push eax
mov eax, dword [ebx + 0x3bc]
mov dword [ebp - 0x2c], eax
push eax
mov eax, dword [ebp - 0x2c]
call fcn.00408780
push eax
lea eax, [ebx + 0x3c8]
push eax
mov eax, dword [ebx + 0x3b0]
push eax
mov eax, dword [ebp - 4]
push eax
mov esi, dword [ebx + 0x3b4]
mov eax, esi
call fcn.00408780
mov edx, eax
mov ecx, edi
mov eax, esi
call fcn.00519860
xor eax, eax
mov dword [ebx + 0x3c0], eax
mov eax, dword [ebx + 0x3b0]
dec eax
mov dword [ebx + 0x3c4], eax
mov eax, dword [ebx + 0x390]
mov edx, dword [eax]
call dword [edx + 0x114]
mov eax, dword [ebx + 0x390]
mov eax, dword [eax + 0x2a8]
mov edx, 0x51aadc
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov esi, dword [ebx + 0x3c0]
mov eax, dword [ebx + 0x3c4]
sub eax, esi
jl 0x51a93f
inc eax
mov dword [ebp - 0x24], eax
xor eax, eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
xor eax, eax
mov dword [ebp - 0x10], eax
mov dword [ebp - 0xc], 0x3ff00000
mov eax, dword [ebp - 4]
dec eax
test eax, eax
jl 0x51a8ab
inc eax
xor edx, edx
mov ecx, dword [ebx + 0x3bc]
fld qword [ecx + edx*8]
fmul qword [ebp - 0x10]
fadd qword [ebp - 0x18]
fstp qword [ebp - 0x18]
wait
fld qword [ebp - 0x10]
mov ecx, dword [ebx + 0x3b4]
fmul qword [ecx + esi*8]
fstp qword [ebp - 0x10]
wait
inc edx
dec eax
jne 0x51a884
fld qword [ebp - 0x18]
mov eax, dword [ebx + 0x3b8]
fsub qword [eax + esi*8]
fstp qword [ebp - 0x20]
wait
lea eax, [ebp - 0x30]
push eax
mov eax, dword [ebx + 0x3b4]
fld qword [eax + esi*8]
fstp xword [ebp - 0x5c]
wait
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x50], eax
mov byte [ebp - 0x4c], 3
mov eax, dword [ebx + 0x3b8]
fld qword [eax + esi*8]
fstp xword [ebp - 0x68]
wait
lea eax, [ebp - 0x68]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x44], 3
fld qword [ebp - 0x18]
fstp xword [ebp - 0x74]
wait
lea eax, [ebp - 0x74]
mov dword [ebp - 0x40], eax
mov byte [ebp - 0x3c], 3
fld qword [ebp - 0x20]
fstp xword [ebp - 0x80]
wait
lea eax, [ebp - 0x80]
mov dword [ebp - 0x38], eax
mov byte [ebp - 0x34], 3
lea edx, [ebp - 0x50]
mov ecx, 3
mov eax, 0x51ab2c
call fcn.0041f414
mov edx, dword [ebp - 0x30]
mov eax, dword [ebx + 0x390]
mov eax, dword [eax + 0x2a8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
inc esi
dec dword [ebp - 0x24]
jne 0x51a865
mov eax, dword [ebx + 0x390]
mov eax, dword [eax + 0x2a8]
mov edx, 0x51ab6c
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebx + 0x390]
mov eax, dword [eax + 0x2a8]
mov edx, 0x51ab7c
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x84]
push eax
mov eax, dword [ebx + 0x3bc]
fld qword [eax]
fstp xword [ebp - 0x5c]
wait
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x8c], eax
mov byte [ebp - 0x88], 3
lea edx, [ebp - 0x8c]
xor ecx, ecx
mov eax, 0x51aba4
call fcn.0041f414
mov edx, dword [ebp - 0x84]
mov eax, dword [ebx + 0x390]
mov eax, dword [eax + 0x2a8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [ebp - 4]
dec eax
test eax, eax
jle 0x51aa2a
mov dword [ebp - 0x24], eax
mov esi, 1
lea eax, [ebp - 0x90]
push eax
mov eax, dword [ebx + 0x3bc]
fld qword [eax + esi*8]
fstp xword [ebp - 0x5c]
wait
lea eax, [ebp - 0x5c]
mov dword [ebp - 0xa0], eax
mov byte [ebp - 0x9c], 3
mov dword [ebp - 0x98], esi
mov byte [ebp - 0x94], 0
lea edx, [ebp - 0xa0]
mov ecx, 1
mov eax, 0x51abd8
call fcn.0041f414
mov edx, dword [ebp - 0x90]
mov eax, dword [ebx + 0x390]
mov eax, dword [eax + 0x2a8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
inc esi
dec dword [ebp - 0x24]
jne 0x51a9c7
lea eax, [ebp - 0xa4]
push eax
fld qword [ebx + 0x3c8]
fstp xword [ebp - 0x5c]
wait
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x8c], eax
mov byte [ebp - 0x88], 3
lea edx, [ebp - 0x8c]
xor ecx, ecx
mov eax, 0x51abfc
call fcn.0041f414
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebx + 0x390]
mov eax, dword [eax + 0x2a8]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov byte [ebx + 0x3ac], 1
mov eax, dword [ebx + 0x3a4]
call fcn.004847e4
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x51aac4
lea eax, [ebp - 0xa4]
call fcn.00406b14
lea eax, [ebp - 0x90]
call fcn.00406b14
lea eax, [ebp - 0x84]
call fcn.00406b14
lea eax, [ebp - 0x30]
call fcn.00406b14
ret