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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x90
mov eax, dword [0x63a1e8]
mov edi, dword [ebp + 0x10]
movsd xmm0, qword [ebp + 8]
xor eax, ebp
cmp edi, 2
mov dword [esp + 0x88], eax
jae 0x518974
lea esi, [esp + 0x68]
lea eax, [esp + 0x78]
movsd qword [esi], xmm0
mov ecx, esi
push eax
call 0x5191ac
xor eax, eax
test edi, edi
mov dword [esi + 4], eax
mov dword [esi], eax
mov dword [esi + 8], eax
mov dword [esp + 0x5c], eax
mov dword [esp + 0x58], eax
mov dword [esp + 0x60], eax
je 0x518c2c
xorps xmm0, xmm0
cvtsd2ss xmm0, qword [ebp + 8]
lea ecx, [esp + 0x48]
lea eax, [esp + 0x58]
movss dword [ecx], xmm0
push eax
push esi
call fcn.0051933e
jmp 0x518c44
jne 0x5191a7
mov eax, dword [ebp + 0x14]
lea esi, [esp + 0x68]
lea edi, [esp + 0x78]
mov ecx, esi
movsd qword [esi], xmm0
mov dword [esp + 0x14], eax
push edi
call 0x5191ac
mov eax, dword [edi + 8]
mov ecx, 0xffffff84
mov edx, 0xffffffa0
mov ebx, esi
sub ecx, eax
sub edx, eax
xor eax, eax
mov dword [esi + 4], eax
mov dword [esi], eax
mov dword [esi + 8], eax
lea eax, [esp + 0x58]
push eax
push esi
push edx
push ecx
call fcn.00552c90
add esp, 0x10
mov ecx, dword [ebx + 4]
mov edx, dword [edi + 4]
mov esi, edi
mov esi, dword [esi]
mov eax, ecx
mov dword [esp + 0xc], edx
mul edx
mov dword [esp + 8], eax
mov eax, ecx
mov edi, edx
mov ecx, esi
mul esi
mov dword [esp], eax
lea eax, [esp + 0x68]
mov dword [esp + 4], edx
mov ebx, dword [eax]
mov eax, ebx
mul dword [esp + 0xc]
mov dword [esp + 0xc], eax
mov eax, ebx
mov esi, edx
xor ebx, ebx
mul ecx
lea eax, [esp + 0x78]
mov ecx, 0
add edx, dword [esp + 0xc]
mov eax, dword [eax + 8]
setb bl
add edx, dword [esp]
adc ebx, ecx
lea ecx, [esp + 0x68]
add eax, dword [ecx + 8]
imul ecx, eax, 0x4d1
add esi, dword [esp + 8]
mov dword [esp], ecx
mov ecx, 0
adc edi, ecx
add esi, dword [esp + 4]
adc edi, ecx
xor ecx, ecx
add edx, 0x80000000
adc esi, ebx
adc edi, ecx
mov ecx, 0xffffffc0
mov edx, esi
sub ecx, eax
xor ebx, ebx
xor eax, eax
shrd edx, edi, cl
inc ebx
mov dword [esp + 0x1c], ecx
mov dword [esp + 8], edx
mov edx, edi
shld eax, ebx, cl
shl ebx, cl
shr edx, cl
test cl, 0x20
mov ecx, 0
cmovne eax, ebx
cmovne ebx, ecx
cmove edx, dword [esp + 8]
mov dword [esp + 0x20], ebx
add ebx, 0xffffffff
mov dword [esp + 0x28], eax
adc eax, 0xffffffff
and esi, ebx
mov dword [esp + 0x24], ebx
mov ebx, dword [ebp + 0x20]
mov dword [esp + 0x2c], eax
and edi, eax
mov eax, dword [esp]
mov dword [esp + 4], edx
add eax, 0x26d51
sar eax, 0xc
cmp dword [eax*4 + 0x5d8a18], edx
lea ecx, [eax + 1]
cmova ecx, eax
xor edx, edx
mov dword [esp + 0x48], ecx
mov dword [ebx], edx
mov ebx, dword [ecx*4 + 0x5d8a14]
xor edx, edx
test ecx, ecx
jle 0x518b45
mov dword [esp + 8], ecx
mov dword [esp + 0xc], edi
mov ecx, dword [ebp + 0x14]
mov edi, dword [esp + 4]
mov dword [esp + 0x10], esi
mov dword [esp], 0
mov eax, edi
xor edx, edx
mov edi, dword [ebp + 0x18]
div ebx
mov esi, dword [esp]
add al, 0x30
mov byte [edi + esi], al
mov eax, dword [ebp + 0x20]
mov edi, dword [eax]
inc edi
cmp ecx, 1
mov esi, edi
mov dword [esp], edi
mov dword [eax], edi
mov edi, edx
je 0x5190a9
mov esi, dword [esp + 8]
mov eax, ebx
mov edx, 0xcccccccd
dec ecx
mul edx
mov ebx, edx
shr ebx, 3
dec esi
lea eax, [esi + 1]
mov dword [esp + 8], esi
cmp eax, 1
jg 0x518ae1
mov dword [esp + 4], edi
mov dword [esp + 0x14], ecx
mov ecx, dword [esp + 8]
mov edx, dword [esp]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x48], ecx
cmp dword [esp + 0x14], 0
mov dword [esp], edx
je 0x5190b8
xor eax, eax
cmp esi, 2
mov edx, edi
sbb edx, 0
jb 0x519139
cmp dword [esp + 0x14], 0
mov ebx, dword [ebp + 0x20]
jle 0x51913c
xor edx, edx
mov dword [esp + 8], ecx
mov dword [esp + 4], 0
inc edx
mov eax, esi
mov ecx, 0xa
mov dword [esp + 0x18], edx
lea ebx, [edi + edi*4]
mov edi, dword [esp]
mul ecx
mov ecx, dword [esp + 0x1c]
mov esi, eax
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
lea ebx, [edx + ebx*2]
mov edx, 0xa
mov dword [esp + 0xc], ebx
shrd esi, ebx, cl
shr ebx, cl
mul edx
test cl, 0x20
mov ecx, dword [esp + 4]
cmove ebx, esi
mov esi, dword [ebp + 0x18]
dec dword [esp + 8]
add bl, 0x30
mov byte [esi + edi], bl
mov ebx, dword [ebp + 0x20]
lea esi, [ecx + ecx*4]
mov edi, dword [esp + 0xc]
lea ecx, [edx + esi*2]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x14]
mov esi, dword [ebx]
and edi, dword [esp + 0x2c]
inc esi
mov edx, esi
mov dword [esp], esi
mov dword [ebx], esi
mov esi, dword [esp + 0x10]
mov edx, eax
and esi, dword [esp + 0x24]
cmp ecx, 2
lea ecx, [ecx - 1]
mov dword [esp + 0x14], ecx
jl 0x518c12
mov eax, dword [esp + 4]
cmp edx, esi
sbb eax, edi
jb 0x518b80
mov eax, dword [esp + 8]
cmp dword [esp + 0x14], 0
mov dword [esp + 0x48], eax
je 0x519176
xor eax, eax
jmp 0x51913c
movsd xmm0, qword [ebp + 8]
lea ecx, [esp + 0x48]
lea eax, [esp + 0x58]
movsd qword [ecx], xmm0
push eax
push esi
call fcn.00519224
lea ecx, [esp + 0x48]
xor eax, eax
mov edx, 0xffffffa0
mov dword [ecx + 4], eax
mov dword [ecx], eax
mov dword [ecx + 8], eax
mov eax, dword [esp + 0x80]
mov edi, ecx
mov ecx, 0xffffff84
sub ecx, eax
sub edx, eax
lea eax, [esp + 0x44]
push eax
push edi
push edx
push ecx
call fcn.00552c90
add esp, 0x10
mov ebx, dword [edi + 4]
mov ecx, dword [esp + 0x7c]
mov edi, dword [edi]
mov eax, ebx
mov dword [esp + 0x10], ecx
mov dword [esp + 4], ebx
mov dword [esp + 8], edi
mul ecx
mov ecx, edx
mov edx, dword [esp + 0x78]
mov dword [esp], eax
mov eax, ebx
mov dword [esp + 0x18], edx
mul edx
mov dword [esp + 0xc], eax
mov eax, edi
mov dword [esp + 0x14], edx
mul dword [esp + 0x10]
mov ebx, eax
mov eax, edi
mov esi, edx
mov edi, 0
mul dword [esp + 0x18]
xor eax, eax
add edx, ebx
lea ebx, [esp + 0x48]
setb al
add edx, dword [esp + 0xc]
adc eax, edi
mov edi, dword [esp + 0x80]
add edi, dword [ebx + 8]
mov dword [esp + 0x18], edi
imul edi, edi, 0x4d1
add esi, dword [esp]
mov dword [esp + 0x10], edi
mov edi, 0
adc ecx, edi
add esi, dword [esp + 0x14]
adc ecx, edi
mov edi, SysReAllocString
xor ebx, ebx
add edx, edi
adc esi, eax
adc ecx, ebx
mov dword [esp + 0x34], esi
mov esi, dword [esp + 0x6c]
mov ebx, dword [esp + 0x68]
xor edi, edi
mov dword [esp + 0x38], ecx
mov ecx, dword [esp + 4]
mov eax, esi
mul ecx
mov dword [esp + 0x14], eax
mov eax, ebx
mov dword [esp], edx
mul ecx
mov ecx, dword [esp + 8]
mov dword [esp + 0x24], eax
mov eax, esi
mov dword [esp + 0xc], edx
mul ecx
mov esi, eax
mov eax, ebx
mov dword [esp + 0x1c], edx
mov ebx, dword [esp + 0x58]
mul ecx
mov ecx, dword [esp + 4]
xor eax, eax
add edx, esi
setb al
add edx, dword [esp + 0x24]
adc eax, edi
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x24], edx
mov dword [esp + 0x2c], eax
mov eax, edi
mul ecx
mov dword [esp + 0x28], eax
mov eax, ebx
mov esi, edx
mul ecx
mov dword [esp + 4], eax
mov eax, edi
mov ecx, edx
mul dword [esp + 8]
mov edi, eax
mov eax, ebx
mov dword [esp + 0x20], edx
mul dword [esp + 8]
mov ebx, dword [esp + 0x20]
xor eax, eax
add edx, edi
mov edi, 0
setb al
add edx, dword [esp + 4]
adc eax, edi
add ebx, dword [esp + 0x28]
adc esi, edi
add ebx, ecx
mov ecx, SysReAllocString
adc esi, edi
add edx, ecx
mov edx, dword [esp + 0x1c]
adc ebx, eax
mov eax, dword [esp]
adc esi, edi
add ebx, 1
adc esi, edi
mov dword [esp + 0x20], ebx
add edx, dword [esp + 0x14]
mov dword [esp + 0x30], esi
adc eax, edi
add edx, dword [esp + 0xc]
adc eax, edi
add dword [esp + 0x24], ecx
mov ecx, ebx
adc edx, dword [esp + 0x2c]
adc eax, edi
sub ecx, edx
mov dword [esp], eax
mov eax, esi
sbb eax, dword [esp]
add ecx, 1
mov dword [esp + 0xc], ecx
mov ecx, 0xffffffc0
adc eax, edi
sub ecx, dword [esp + 0x18]
mov dword [esp + 0x14], eax
xor eax, eax
xor edx, edx
inc eax
shrd ebx, esi, cl
shld edx, eax, cl
shl eax, cl
mov dword [esp + 0x24], ecx
mov dword [esp], ebx
mov ebx, esi
shr ebx, cl
test cl, 0x20
cmovne edx, eax
cmovne eax, edi
cmove ebx, dword [esp]
mov dword [esp + 0x3c], eax
add eax, 0xffffffff
mov dword [esp + 0x40], edx
adc edx, 0xffffffff
mov dword [esp + 0x2c], eax
and esi, edx
mov dword [esp + 0x28], edx
mov edx, dword [esp + 0x20]
mov dword [esp + 8], esi
mov esi, dword [esp + 0x10]
mov dword [esp], ebx
and edx, eax
add esi, 0x26d51
sar esi, 0xc
cmp dword [esi*4 + 0x5d8a18], ebx
mov ebx, dword [ebp + 0x20]
lea ecx, [esi + 1]
cmova ecx, esi
mov dword [ebx], edi
test ecx, ecx
jle 0x518eff
mov dword [esp + 0x1c], ecx
mov ecx, dword [ecx*4 + 0x5d8a14]
xor esi, esi
mov dword [esp + 4], edx
mov eax, dword [esp]
xor edx, edx
mov ebx, ecx
div ecx
mov ecx, dword [ebp + 0x18]
add al, 0x30
mov edi, edx
mov dword [esp], edx
mov byte [ecx + esi], al
mov eax, dword [ebp + 0x20]
mov ecx, dword [esp + 0x24]
mov esi, dword [eax]
xor eax, eax
shl edi, cl
shld eax, edx, cl
inc esi
test cl, 0x20
mov ecx, 0
cmovne eax, edi
cmovne edi, ecx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x18], esi
add edi, dword [esp + 4]
adc eax, dword [esp + 8]
cmp edi, dword [esp + 0xc]
mov edx, eax
sbb edx, ecx
mov edx, dword [ebp + 0x20]
mov dword [edx], esi
jb 0x518f09
mov eax, dword [esp + 0x1c]
cmp eax, 2
jl 0x518f78
dec eax
mov esi, dword [esp + 0x18]
mov ecx, 0xcccccccd
mov dword [esp + 0x1c], eax
mov eax, ebx
mul ecx
mov ecx, edx
shr ecx, 3
jmp 0x518e85
mov dword [esp + 0x18], 0
jmp 0x518f80
mov ecx, dword [esp + 0x24]
xor edx, edx
mov esi, 0
shld edx, ebx, cl
shl ebx, cl
test cl, 0x20
mov ecx, 0
cmovne edx, ebx
cmovne ebx, ecx
mov ecx, dword [esp + 0x20]
mov dword [esp], edx
mov edx, dword [ebp + 0x1c]
sub ecx, dword [esp + 0x34]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0x30]
sbb ecx, dword [esp + 0x38]
mov dword [esp + 0x30], ecx
mov ecx, dword [ebp + 0x18]
push esi
push 1
push dword [esp + 8]
push ebx
push eax
push edi
push dword [esp + 0x2c]
push dword [esp + 0x28]
push dword [esp + 0x50]
push dword [esp + 0x44]
push dword [esp + 0x40]
call fcn.0051941d
add esp, 0x2c
mov ecx, dword [esp + 0x1c]
dec ecx
jmp 0x519095
mov edx, dword [esp + 4]
xor ecx, ecx
xor edi, edi
mov ebx, dword [esp + 8]
mov esi, dword [esp + 0x18]
xor eax, eax
mov dword [esp + 0x1c], ecx
inc eax
mov dword [esp + 0x10], eax
mov eax, edx
mov ecx, 0xa
mov dword [esp], edi
lea edi, [ebx + ebx*4]
mul ecx
mov ecx, dword [esp + 0x24]
lea ebx, [edx + edi*2]
mov edi, eax
mov dword [esp + 4], eax
mov eax, dword [esp + 0x10]
mov edx, 0xa
mov dword [esp + 8], ebx
shrd edi, ebx, cl
shr ebx, cl
mul edx
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0xc]
mov dword [esp + 0x18], edx
mov edx, 0xa
mul edx
test cl, 0x20
mov ecx, dword [esp]
cmove ebx, edi
mov edi, dword [ebp + 0x18]
dec dword [esp + 0x1c]
mov dword [esp + 0xc], eax
add bl, 0x30
mov byte [edi + esi], bl
lea esi, [ecx + ecx*4]
mov ecx, dword [esp + 0x18]
mov ebx, dword [esp + 8]
lea ecx, [ecx + esi*2]
and ebx, dword [esp + 0x28]
mov dword [esp], ecx
mov ecx, dword [esp + 0x14]
lea ecx, [ecx + ecx*4]
lea edi, [edx + ecx*2]
mov edx, dword [esp + 4]
mov ecx, dword [ebp + 0x20]
mov dword [esp + 0x14], edi
mov esi, dword [ecx]
and edx, dword [esp + 0x2c]
mov ecx, edi
inc esi
cmp edx, eax
mov eax, ebx
sbb eax, edi
mov edi, dword [esp]
mov eax, dword [ebp + 0x20]
mov dword [eax], esi
jae 0x518f93
mov dword [esp + 8], ebx
mov ebx, dword [esp + 0x20]
mov eax, dword [esp + 0x30]
mov ecx, dword [esp + 0x10]
mov dword [esp + 4], edx
sub ebx, dword [esp + 0x34]
sbb eax, dword [esp + 0x38]
imul ecx, eax
mov eax, dword [esp + 0x10]
mul ebx
imul ebx, edi
add ecx, edx
mov edx, dword [ebp + 0x1c]
add ebx, ecx
mov ecx, dword [ebp + 0x18]
push edi
push dword [esp + 0x14]
push dword [esp + 0x48]
push dword [esp + 0x48]
push dword [esp + 0x18]
push dword [esp + 0x18]
push dword [esp + 0x2c]
push dword [esp + 0x28]
push ebx
push eax
push esi
call fcn.0051941d
add esp, 0x2c
mov ecx, dword [esp + 0x1c]
test al, al
je 0x51915c
sub ecx, dword [esp + 0x44]
mov ebx, dword [ebp + 0x20]
jmp 0x519148
mov eax, dword [esp + 8]
mov esi, dword [esp + 0x10]
dec eax
mov dword [esp + 0x48], eax
jmp 0x5190c0
mov dword [esp + 0xc], edi
mov edi, dword [esp + 4]
mov ecx, dword [esp + 0x1c]
mov edx, ebx
mov eax, 0
shl edx, cl
test cl, 0x20
mov dword [esp + 4], edx
cmovne edx, eax
xor eax, eax
shld eax, ebx, cl
test cl, 0x20
mov dword [esp + 8], edx
mov edx, 0
cmovne eax, dword [esp + 4]
mov dword [esp + 4], eax
mov eax, edi
shl eax, cl
test cl, 0x20
mov ebx, eax
cmovne ebx, edx
mov edx, edi
xor edi, edi
shld edi, edx, cl
test cl, 0x20
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
cmovne edi, eax
add ebx, esi
lea eax, [esp + 0x48]
adc edi, dword [esp + 0xc]
push eax
mov eax, 0
push eax
push 1
push dword [esp + 0x10]
push dword [esp + 0x18]
push edi
push ebx
push dword [esp + 0x1c]
call fcn.005195a2
add esp, 0x20
mov ebx, dword [ebp + 0x20]
test al, al
je 0x51915c
mov ecx, dword [esp + 0x48]
sub ecx, dword [esp + 0x58]
mov eax, dword [ebp + 0x24]
add ecx, dword [ebx]
mov esi, dword [ebp + 0x18]
mov dword [eax], ecx
mov eax, dword [ebx]
mov bl, 1
mov byte [esi + eax], 0
jmp 0x51915e
xor ebx, ebx
mov ecx, dword [esp + 0x88]
xor ecx, ebp
call fcn.005909f1
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov dword [esp + 0x10], esi
mov esi, edx
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
lea eax, [esp + 0x48]
push eax
push dword [esp + 8]
push esi
push dword [esp + 0x34]
push dword [esp + 0x30]
push edi
push dword [esp + 0x28]
push dword [esp + 0x1c]
call fcn.005195a2
add esp, 0x20
jmp 0x51913c
call fcn.0040fc03
push ebp
mov ebp, esp
push edi
push esi
mov eax, dword [ecx + 4]
xor edx, edx
mov ecx, dword [ecx]
add edx, 0xffffffff
mov edx, 0x100000
adc edx, 0xffffffff
mov edi, eax
and edx, eax
shr edi, 0x14
mov esi, edx
and edi, 0x7ff
or esi, 0x100000
add edi, 0xfffffbcd
test eax, 0x7ff00000
mov eax, dword [ebp + 8]
cmove esi, edx
mov edx, 0xfffffbce
cmovne edx, edi
bt esi, 0x14
jae 0x5191fb
mov edi, esi
jmp 0x51920c
mov edi, esi
shld edi, ecx, 1
add ecx, ecx
dec edx
bt esi, 0x13
mov esi, edi
jae 0x5191fd
shld edi, ecx, 0xb
shl ecx, 0xb
add edx, 0xfffffff5
mov dword [eax], ecx
mov dword [eax + 4], edi
mov dword [eax + 8], edx
pop esi
pop edi
pop ebp
ret 4