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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov edi, dword [ebp + 0x10]
movsd xmm1, qword [ebp + 8]
mov eax, dword [0x5ef0d4]
xor eax, ebp
mov dword [esp + 0x88], eax
cmp edi, 2
jae 0x443c15
pcmpeqd xmm0, xmm0
lea eax, [esp + 0x70]
movdqa xmmword [eax], xmm0
lea esi, [esp + 0x60]
movsd qword [esi], xmm1
mov ecx, esi
push eax
call fcn.004444c4
movaps xmm0, xmmword [0x5b9150]
movups xmmword [esi], xmm0
movups xmmword [esp + 0x50], xmm0
test edi, edi
je 0x443ef7
xorps xmm0, xmm0
cvtsd2ss xmm0, qword [ebp + 8]
lea ecx, [esp + 0x40]
movss dword [ecx], xmm0
lea eax, [esp + 0x50]
push eax
push esi
call fcn.00444652
jmp 0x443f0f
jne 0x4444be
mov eax, dword [ebp + 0x14]
mov dword [esp + 0x18], eax
pcmpeqd xmm0, xmm0
lea esi, [esp + 0x70]
movdqa xmmword [esi], xmm0
lea edi, [esp + 0x60]
movsd qword [edi], xmm1
mov ecx, edi
push esi
call fcn.004444c4
movapd xmm0, xmmword [0x5b9150]
movupd xmmword [edi], xmm0
mov eax, dword [esi + 8]
mov ecx, 0xffffff84
sub ecx, eax
mov edx, 0xffffffa0
sub edx, eax
lea eax, [esp + 0x50]
mov dword [eax], 0xffffffff
push eax
push edi
push edx
push ecx
call fcn.0044a06c
add esp, 0x10
mov ebx, dword [esi + 4]
mov ecx, dword [edi + 4]
mov eax, ecx
mul ebx
mov edi, ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov esi, dword [esi]
mov eax, ecx
mul esi
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
lea eax, [esp + 0x60]
mov ebx, dword [eax]
mov eax, ebx
mul edi
mov ecx, edx
mov edi, eax
mov eax, ebx
mul esi
xor ebx, ebx
add edx, edi
setb bl
add edx, dword [esp + 8]
adc ebx, 0
lea eax, [esp + 0x70]
mov eax, dword [eax + 8]
lea esi, [esp + 0x60]
add eax, dword [esi + 8]
imul esi, eax, 0x4d1
mov dword [esp + 8], esi
xor esi, esi
add ecx, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
adc edi, esi
add ecx, dword [esp + 0xc]
adc edi, esi
add edx, 0x80000000
adc ecx, ebx
mov dword [esp + 0xc], ecx
adc edi, 0
mov dword [esp + 0x14], edi
mov ecx, 0xffffffc0
sub ecx, eax
xor ebx, ebx
inc ebx
xor eax, eax
shld eax, ebx, cl
shl ebx, cl
mov edx, dword [esp + 0xc]
shrd edx, edi, cl
mov edi, dword [esp + 0x14]
shr edi, cl
mov dword [esp + 0x28], ecx
test cl, 0x20
cmove edi, edx
mov edx, dword [esp + 0x14]
mov ecx, dword [esp + 0xc]
cmovne eax, ebx
cmovne ebx, esi
mov dword [esp + 0x2c], ebx
add ebx, 0xffffffff
mov dword [esp + 0x30], eax
adc eax, 0xffffffff
mov dword [esp + 0x20], eax
and edx, eax
mov dword [esp + 0x24], ebx
and ecx, ebx
mov eax, dword [esp + 8]
add eax, 0x26d51
sar eax, 0xc
mov dword [esp + 0x10], edi
cmp dword [eax*4 + 0x5b9194], edi
lea edi, [eax + 1]
cmova edi, eax
mov dword [esp + 0x40], edi
mov eax, dword [ebp + 0x20]
mov dword [eax], 0
mov ebx, dword [edi*4 + 0x5b9190]
mov dword [esp + 8], edi
test edi, edi
mov dword [esp + 0xc], ecx
jle 0x443ddf
mov dword [esp + 0x14], edx
xor esi, esi
mov edi, dword [ebp + 0x14]
mov eax, dword [esp + 0x10]
xor edx, edx
div ebx
add al, 0x30
mov ecx, dword [ebp + 0x18]
mov byte [ecx + esi], al
mov eax, dword [ebp + 0x20]
mov esi, dword [eax]
inc esi
mov dword [eax], esi
cmp edi, 1
je 0x4443f1
mov dword [esp + 0x10], edx
mov ecx, esi
mov esi, dword [esp + 8]
dec esi
mov eax, ebx
mov edx, 0xcccccccd
mul edx
mov ebx, edx
shr ebx, 3
mov dword [esp + 8], esi
lea eax, [esi + 1]
mov esi, ecx
dec edi
cmp eax, 1
ja 0x443d86
mov dword [esp + 0x18], edi
mov eax, dword [esp + 8]
mov dword [esp + 0x40], eax
mov edx, dword [esp + 0x14]
cmp dword [esp + 0x18], 0
je 0x4443fc
jle 0x4443e4
cmp dword [esp + 0xc], 2
mov eax, edx
sbb eax, 0
jb 0x4443e4
xor ebx, ebx
mov edi, dword [esp + 0xc]
xor eax, eax
inc eax
mov dword [esp + 0x10], eax
mov dword [esp + 0x1c], ebx
mov eax, edi
mov edi, edx
mov edx, 0xa
mul edx
lea ebx, [edi + edi*4]
lea ebx, [edx + ebx*2]
mov edi, eax
mov dword [esp + 0xc], eax
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], ebx
shrd edi, ebx, cl
shr ebx, cl
mov eax, dword [esp + 0x10]
mov edx, 0xa
mul edx
test cl, 0x20
cmove ebx, edi
mov edi, dword [ebp + 0x18]
add bl, 0x30
mov byte [edi + esi], bl
mov edi, dword [ebp + 0x20]
mov ecx, dword [esp + 0x1c]
lea esi, [ecx + ecx*4]
lea ebx, [edx + esi*2]
mov ecx, dword [esp + 0x18]
mov esi, dword [edi]
inc esi
mov dword [edi], esi
mov edi, dword [esp + 0xc]
and edi, dword [esp + 0x24]
mov edx, dword [esp + 0x14]
and edx, dword [esp + 0x20]
dec dword [esp + 8]
mov dword [esp + 0x10], eax
cmp ecx, 2
lea eax, [ecx - 1]
mov dword [esp + 0x18], eax
jb 0x443e97
cmp dword [esp + 0x10], edi
mov eax, ebx
sbb eax, edx
jb 0x443e0d
mov dword [esp + 0xc], edi
mov ecx, dword [esp + 8]
mov dword [esp + 0x40], ecx
cmp dword [esp + 0x18], 0
jne 0x4443e4
mov eax, ebx
mov edi, dword [ebp + 0x18]
mov ecx, edi
mov dword [esp + 0x14], edx
mov edx, dword [ebp + 0x1c]
lea ebx, [esp + 0x40]
push ebx
push eax
push dword [esp + 0x18]
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push dword [esp + 0x28]
push dword [esp + 0x24]
push esi
call fcn.004448d4
add esp, 0x20
test al, al
je 0x4443e4
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x50]
mov ebx, dword [ebp + 0x20]
jmp 0x444491
lea ecx, [esp + 0x40]
movsd xmm0, qword [ebp + 8]
movsd qword [ecx], xmm0
lea eax, [esp + 0x50]
push eax
push esi
call fcn.0044453c
lea eax, [esp + 0x40]
movaps xmm0, xmmword [0x5b9150]
movups xmmword [eax], xmm0
mov edi, eax
lea eax, [esp + 0x3c]
mov dword [eax], 0xffffffff
mov ecx, dword [esp + 0x78]
mov edx, 0xffffff84
sub edx, ecx
mov esi, 0xffffffa0
sub esi, ecx
push eax
push edi
push esi
push edx
call fcn.0044a06c
add esp, 0x10
mov ecx, dword [esp + 0x74]
mov dword [esp + 0xc], ecx
mov esi, dword [edi + 4]
mov ebx, edi
mov eax, esi
mul ecx
mov dword [esp + 0x10], eax
mov ecx, edx
mov edi, dword [esp + 0x70]
mov eax, esi
mul edi
mov dword [esp + 8], eax
mov dword [esp + 0x14], edx
mov ebx, dword [ebx]
mov eax, ebx
mul dword [esp + 0xc]
mov esi, edx
mov dword [esp + 0xc], eax
mov eax, ebx
mul edi
xor ebx, ebx
add edx, dword [esp + 0xc]
setb bl
xor eax, eax
add edx, dword [esp + 8]
adc ebx, eax
mov eax, dword [esp + 0x78]
lea edi, [esp + 0x40]
add eax, dword [edi + 8]
mov dword [esp + 8], eax
imul eax, eax, 0x4d1
add esi, dword [esp + 0x10]
mov edi, 0
adc ecx, edi
add esi, dword [esp + 0x14]
mov edi, 0
adc ecx, edi
add edx, 0x80000000
adc esi, ebx
mov dword [esp + 0x2c], esi
lea edx, [esp + 0x40]
movd xmm0, dword [edx + 4]
movd xmm4, dword [edx]
adc ecx, 0
mov dword [esp + 0x30], ecx
movups xmm2, xmmword [esp + 0x60]
movss xmm1, dword [esp + 0x50]
shufps xmm1, xmm2, 0x30
movaps xmm5, xmm2
shufps xmm5, xmm1, 0x84
movss xmm1, dword [esp + 0x54]
shufps xmm2, xmm1, 0x24
psrlq xmm2, 0x20
pshufd xmm1, xmm0, 0x44
movdqa xmm3, xmm2
pmuludq xmm3, xmm1
pmuludq xmm1, xmm5
pshufd xmm0, xmm4, 0x44
pmuludq xmm2, xmm0
pmuludq xmm5, xmm0
psrlq xmm5, 0x20
movdqa xmm0, xmmword [0x5b9160]
movdqa xmm4, xmm2
pand xmm4, xmm0
paddq xmm4, xmm5
pand xmm0, xmm1
paddq xmm0, xmm4
paddq xmm0, xmmword [0x5b9170]
mov ecx, 0xffffffc0
sub ecx, dword [esp + 8]
psrlq xmm2, 0x20
paddq xmm2, xmm3
psrlq xmm1, 0x20
paddq xmm1, xmm2
xor ebx, ebx
inc ebx
xor edi, edi
shld edi, ebx, cl
psrlq xmm0, 0x20
paddq xmm0, xmm1
pcmpeqd xmm1, xmm1
shl ebx, cl
movdqa xmm3, xmm0
psubq xmm3, xmm1
pshufd xmm1, xmm3, 0xff
pshufd xmm2, xmm3, 0xee
movd esi, xmm1
movd edx, xmm2
mov dword [esp + 0x24], edx
shrd edx, esi, cl
mov dword [esp + 0x20], esi
shr esi, cl
mov dword [esp + 8], ecx
test cl, 0x20
cmove esi, edx
cmovne edi, ebx
mov ecx, 0
cmovne ebx, ecx
mov dword [esp + 0x34], ebx
add ebx, 0xffffffff
mov dword [esp + 0x38], edi
adc edi, 0xffffffff
movd xmm1, edi
xor edi, edi
add eax, 0x26d51
sar eax, 0xc
cmp dword [eax*4 + 0x5b9194], esi
lea edx, [eax + 1]
cmova edx, eax
movd xmm2, ebx
movdqa xmm4, xmmword [0x5b6e60]
psubq xmm4, xmm0
shufps xmm4, xmm3, 0xe4
movdqa xmm3, xmm1
punpcklqdq xmm3, xmm2
shufps xmm0, xmm3, 0x2e
movaps xmm3, xmm4
paddq xmm3, xmm0
andps xmm0, xmm4
mov ebx, dword [ebp + 0x20]
mov dword [ebx], edi
test edx, edx
jle 0x4441c8
mov ecx, esi
mov dword [esp + 0xc], edx
mov esi, dword [edx*4 + 0x5b9190]
pshufd xmm4, xmm0, 0xff
movd dword [esp + 0x1c], xmm4
pshufd xmm4, xmm0, 0xee
movd dword [esp + 0x28], xmm4
movd dword [esp + 0x14], xmm3
pshufd xmm4, xmm3, 0x55
movd dword [esp + 0x18], xmm4
xor ebx, ebx
mov edi, dword [ebp + 0x18]
mov eax, ecx
xor edx, edx
mov dword [esp + 0x10], esi
div esi
add al, 0x30
mov byte [edi + ebx], al
xor eax, eax
mov esi, edx
mov ecx, dword [esp + 8]
shld eax, edx, cl
mov edx, dword [ebp + 0x20]
mov ebx, dword [edx]
inc ebx
mov edi, esi
mov ecx, dword [esp + 8]
shl edi, cl
mov ecx, dword [esp + 8]
test cl, 0x20
cmovne eax, edi
mov edx, 0
cmovne edi, edx
add edi, dword [esp + 0x28]
adc eax, dword [esp + 0x1c]
cmp edi, dword [esp + 0x14]
mov edx, eax
sbb edx, dword [esp + 0x18]
mov edx, dword [ebp + 0x20]
mov dword [edx], ebx
jb 0x4441cf
mov edi, dword [esp + 0xc]
cmp edi, 2
jb 0x444258
mov ecx, esi
mov eax, dword [esp + 0x10]
mov edx, 0xcccccccd
mul edx
mov esi, edx
shr esi, 3
dec edi
mov dword [esp + 0xc], edi
jmp 0x44414c
xor ebx, ebx
jmp 0x44425a
xor edx, edx
mov esi, dword [esp + 0x10]
shld edx, esi, cl
shl esi, cl
test cl, 0x20
cmovne edx, esi
mov dword [esp + 0x1c], edx
mov ecx, 0
cmovne esi, ecx
mov dword [esp + 0x10], esi
mov ecx, dword [esp + 0x24]
sub ecx, dword [esp + 0x2c]
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x20]
sbb ecx, dword [esp + 0x30]
mov dword [esp + 0x20], ecx
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
mov dword [esp + 8], 0
xor esi, esi
push esi
push 1
push dword [esp + 0x24]
push dword [esp + 0x1c]
push eax
push edi
push dword [esp + 0x30]
push dword [esp + 0x30]
push dword [esp + 0x40]
push dword [esp + 0x48]
push ebx
call fcn.0044472e
add esp, 0x2c
test al, al
mov ebx, dword [ebp + 0x20]
je 0x4444a4
mov eax, dword [esp + 0x3c]
not eax
add eax, dword [esp + 0xc]
jmp 0x44448e
xor edx, edx
mov dword [esp + 0xc], edx
mov dword [esp + 0x10], ebx
movsd xmm0, xmm3
punpckldq xmm2, xmm1
movdqa xmm1, xmmword [0x5b9180]
punpcklqdq xmm1, xmm2
movdqa xmm2, xmm1
psrlq xmm2, 0x20
mov dword [esp + 0x14], 0
xor ecx, ecx
inc ecx
pshufd xmm3, xmm0, 0xee
movd eax, xmm3
mov edx, 0xa
mul edx
mov esi, eax
pshufd xmm3, xmm0, 0xff
movd eax, xmm3
lea eax, [eax + eax*4]
lea ebx, [edx + eax*2]
mov edi, esi
mov eax, ecx
mov ecx, dword [esp + 8]
shrd edi, ebx, cl
movd xmm4, ebx
mov ecx, dword [esp + 8]
shr ebx, cl
mov ecx, 0xa
mul ecx
movd xmm5, esi
mov esi, dword [esp + 0x14]
lea esi, [esi + esi*4]
lea edx, [edx + esi*2]
mov dword [esp + 0x14], edx
test byte [esp + 8], 0x20
cmove ebx, edi
add bl, 0x30
mov edx, dword [esp + 0x10]
mov esi, dword [ebp + 0x18]
mov byte [esi + edx], bl
mov ecx, dword [ebp + 0x20]
mov edi, dword [ecx]
inc edi
punpcklqdq xmm4, xmm5
movapd xmm3, xmm0
shufps xmm3, xmm4, 0x24
shufps xmm5, xmm0, 0x30
shufps xmm0, xmm5, 0x84
movaps xmm4, xmm3
psrlq xmm4, 0x20
pmuludq xmm4, xmm1
movaps xmm5, xmm0
pmuludq xmm5, xmm2
paddq xmm5, xmm4
psllq xmm5, 0x20
pmuludq xmm0, xmm1
paddq xmm0, xmm5
andps xmm3, xmm1
dec dword [esp + 0xc]
pshufd xmm4, xmm0, 0x55
movd edx, xmm0
pshufd xmm5, xmm3, 0xee
movd esi, xmm5
pshufd xmm5, xmm3, 0xff
mov dword [esp + 0x18], edx
mov dword [esp + 0x1c], esi
cmp esi, edx
movd esi, xmm4
movd ebx, xmm5
mov edx, ebx
sbb edx, esi
mov edx, edi
mov dword [esp + 0x10], edi
mov dword [ecx], edi
movsd xmm3, xmm0
movapd xmm0, xmm3
mov ecx, eax
jae 0x44428a
mov edi, dword [esp + 0x24]
sub edi, dword [esp + 0x2c]
mov edx, dword [esp + 0x20]
sbb edx, dword [esp + 0x30]
mov eax, ecx
mov dword [esp + 0x28], ecx
imul ecx, edx
mul edi
mov dword [esp + 8], eax
add ecx, edx
mov eax, dword [esp + 0x14]
imul edi, eax
add edi, ecx
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
push eax
push dword [esp + 0x2c]
push dword [esp + 0x40]
push dword [esp + 0x40]
push ebx
push dword [esp + 0x30]
push esi
push dword [esp + 0x34]
push edi
push dword [esp + 0x2c]
push dword [esp + 0x38]
call fcn.0044472e
add esp, 0x2c
test al, al
je 0x4443e4
mov eax, dword [esp + 0xc]
sub eax, dword [esp + 0x3c]
mov ebx, dword [ebp + 0x20]
jmp 0x44448e
mov dword [esp + 8], 0
jmp 0x4444a4
mov eax, dword [esp + 8]
dec eax
mov dword [esp + 0x40], eax
jmp 0x444404
mov dword [esp + 0x14], edx
mov edx, dword [esp + 0x10]
mov edi, ebx
mov ecx, dword [esp + 0x28]
shl edi, cl
mov dword [esp + 8], edi
test cl, 0x20
mov eax, 0
cmovne edi, eax
mov dword [esp + 0x10], edi
xor eax, eax
shld eax, ebx, cl
test cl, 0x20
cmovne eax, dword [esp + 8]
mov dword [esp + 0x18], eax
mov edi, edx
shl edx, cl
test cl, 0x20
mov ebx, edx
mov eax, 0
cmovne ebx, eax
xor eax, eax
shld eax, edi, cl
test cl, 0x20
cmovne eax, edx
add ebx, dword [esp + 0xc]
adc eax, dword [esp + 0x14]
lea edi, [esp + 0x40]
mov ecx, dword [ebp + 0x18]
mov edx, dword [ebp + 0x1c]
push edi
mov dword [esp + 0xc], 0
xor edi, edi
push edi
push 1
push dword [esp + 0x24]
push dword [esp + 0x20]
push eax
push ebx
push esi
call fcn.004448d4
add esp, 0x20
test al, al
mov ebx, dword [ebp + 0x20]
je 0x4444a4
mov eax, dword [esp + 0x40]
sub eax, dword [esp + 0x50]
mov edi, dword [ebp + 0x18]
mov ecx, dword [ebp + 0x24]
add eax, dword [ebx]
mov dword [ecx], eax
mov eax, dword [ebx]
mov byte [edi + eax], 0
mov al, 1
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x88]
xor ecx, ebp
call fcn.00565e42
mov eax, dword [esp + 8]
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
call fcn.00432c93
int3