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

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
and esp, 0xfffffff0
sub esp, 0x2e0
mov esi, dword [ebp + 0xc]
mov edi, dword [ebp + 0x14]
mov eax, dword [ebp + 0x10]
mov edx, dword [eax + 0x200]
mov dword [esp + 0x1c], edx
add edx, 1
and edx, 0xfffffffe
mov dword [esp + 0x38], edx
jle 0x41ca32
xor ebx, ebx
and edx, 2
je 0x41c29b
cmp edx, 1
je 0x41c247
cmp edx, 2
je 0x41c1fd
movss xmm0, dword [edi]
mov ecx, dword [ebp + 8]
addss xmm0, dword [ecx]
movss dword [esp + 0x190], xmm0
movss dword [esp], xmm0
call sym._mbLogC
mov dword [esp + 0x238], eax
pxor xmm1, xmm1
cvtsi2ss xmm1, eax
mulss xmm1, dword [0x4a5828]
cvttss2si ebx, xmm1
mov dword [esp], ebx
call sym._mbExp
fstp dword [esp + 0x40]
mov ebx, 1
movss xmm2, dword [edi + ebx*4]
mov eax, dword [ebp + 8]
addss xmm2, dword [eax + ebx*4]
movss dword [esp + ebx*4 + 0x190], xmm2
movss dword [esp], xmm2
call sym._mbLogC
mov dword [esp + ebx*4 + 0x238], eax
pxor xmm3, xmm3
cvtsi2ss xmm3, eax
mulss xmm3, dword [0x4a5828]
cvttss2si edx, xmm3
mov dword [esp], edx
call sym._mbExp
fstp dword [esp + ebx*4 + 0x40]
add ebx, 1
movss xmm4, dword [edi + ebx*4]
mov ecx, dword [ebp + 8]
addss xmm4, dword [ecx + ebx*4]
movss dword [esp + ebx*4 + 0x190], xmm4
movss dword [esp], xmm4
call sym._mbLogC
mov dword [esp + ebx*4 + 0x238], eax
pxor xmm5, xmm5
cvtsi2ss xmm5, eax
mulss xmm5, dword [0x4a5828]
cvttss2si eax, xmm5
mov dword [esp], eax
call sym._mbExp
fstp dword [esp + ebx*4 + 0x40]
add ebx, 1
cmp dword [esp + 0x38], ebx
je 0x41c3ee
mov dword [ebp + 0xc], esi
mov esi, dword [ebp + 8]
movss xmm6, dword [edi + ebx*4]
addss xmm6, dword [esi + ebx*4]
movss dword [esp + ebx*4 + 0x190], xmm6
movss dword [esp], xmm6
call sym._mbLogC
mov dword [esp + ebx*4 + 0x238], eax
pxor xmm7, xmm7
cvtsi2ss xmm7, eax
mulss xmm7, dword [0x4a5828]
cvttss2si edx, xmm7
mov dword [esp], edx
call sym._mbExp
fstp dword [esp + ebx*4 + 0x40]
lea ecx, [ebx + 1]
movss xmm0, dword [edi + ecx*4]
addss xmm0, dword [esi + ecx*4]
movss dword [esp + ecx*4 + 0x190], xmm0
mov dword [esp + 0x3c], ecx
movss dword [esp], xmm0
call sym._mbLogC
mov edx, dword [esp + 0x3c]
mov dword [esp + edx*4 + 0x238], eax
pxor xmm1, xmm1
cvtsi2ss xmm1, eax
mulss xmm1, dword [0x4a5828]
cvttss2si eax, xmm1
mov dword [esp], eax
call sym._mbExp
mov ecx, dword [esp + 0x3c]
fstp dword [esp + ecx*4 + 0x40]
lea edx, [ebx + 2]
movss xmm2, dword [edi + edx*4]
addss xmm2, dword [esi + edx*4]
movss dword [esp + edx*4 + 0x190], xmm2
mov dword [esp + 0x3c], edx
movss dword [esp], xmm2
call sym._mbLogC
mov ecx, dword [esp + 0x3c]
mov dword [esp + ecx*4 + 0x238], eax
pxor xmm3, xmm3
cvtsi2ss xmm3, eax
mulss xmm3, dword [0x4a5828]
cvttss2si eax, xmm3
mov dword [esp], eax
call sym._mbExp
mov edx, dword [esp + 0x3c]
fstp dword [esp + edx*4 + 0x40]
lea ecx, [ebx + 3]
movss xmm4, dword [edi + ecx*4]
addss xmm4, dword [esi + ecx*4]
movss dword [esp + ecx*4 + 0x190], xmm4
mov dword [esp + 0x3c], ecx
movss dword [esp], xmm4
call sym._mbLogC
mov edx, dword [esp + 0x3c]
mov dword [esp + edx*4 + 0x238], eax
pxor xmm5, xmm5
cvtsi2ss xmm5, eax
mulss xmm5, dword [0x4a5828]
cvttss2si eax, xmm5
mov dword [esp], eax
call sym._mbExp
mov ecx, dword [esp + 0x3c]
fstp dword [esp + ecx*4 + 0x40]
add ebx, 4
cmp dword [esp + 0x38], ebx
jne 0x41c2a1
mov esi, dword [ebp + 0xc]
mov dword [esp + 0x10], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], pe_nt_image_headers32
xor edx, edx
mov dword [ebp + 0xc], esi
mov dword [esp + 0x3c], edx
mov esi, edx
mov eax, edx
jmp 0x41c716
add ebx, ebx
add ebx, ebx
movss xmm7, dword [edi + ebx]
mulss xmm7, dword [esp + esi*4 + 0x40]
addss xmm7, dword [0x4a5824]
and ecx, 2
je 0x41ca3a
movss xmm0, dword [edi + ebx + 4]
mulss xmm0, dword [esp + esi*4 + 0x44]
addss xmm7, xmm0
cmp eax, 3
jne 0x41ca54
movss xmm1, dword [edi + ebx + 8]
mulss xmm1, dword [esp + esi*4 + 0x48]
addss xmm7, xmm1
mov ecx, dword [esp + 0x34]
lea ebx, [ecx + 3]
mov dword [esp + 0x24], ebx
mov dword [esp + 0x20], 3
mov ebx, ecx
mov edx, dword [esp + 0x38]
sub edx, eax
mov dword [esp + 0x28], edx
shr edx, 2
mov dword [esp + 0x2c], edx
lea ecx, [ebx + eax]
add ecx, ecx
add ecx, ecx
lea ebx, [edi + ecx]
add eax, esi
add eax, eax
add eax, eax
lea edx, [esp + 0x40]
add eax, edx
movq xmm3, qword [edi + ecx]
movhps xmm3, qword [edi + ecx + 8]
mulps xmm3, xmmword [eax]
mov ecx, dword [esp + 0x2c]
cmp ecx, 1
je 0x41c59d
movq xmm2, qword [ebx + 0x10]
movhps xmm2, qword [ebx + 0x18]
mulps xmm2, xmmword [eax + 0x10]
addps xmm3, xmm2
cmp ecx, 2
je 0x41c59d
movq xmm4, qword [ebx + 0x20]
movhps xmm4, qword [ebx + 0x28]
mulps xmm4, xmmword [eax + 0x20]
addps xmm3, xmm4
cmp ecx, 3
je 0x41c59d
movq xmm5, qword [ebx + 0x30]
movhps xmm5, qword [ebx + 0x38]
mulps xmm5, xmmword [eax + 0x30]
addps xmm3, xmm5
cmp ecx, 4
je 0x41c59d
movq xmm6, qword [ebx + 0x40]
movhps xmm6, qword [ebx + 0x48]
mulps xmm6, xmmword [eax + 0x40]
addps xmm3, xmm6
cmp ecx, 5
je 0x41c59d
movq xmm0, qword [ebx + 0x50]
movhps xmm0, qword [ebx + 0x58]
mulps xmm0, xmmword [eax + 0x50]
addps xmm3, xmm0
cmp ecx, 6
je 0x41c59d
movq xmm1, qword [ebx + 0x60]
movhps xmm1, qword [ebx + 0x68]
mulps xmm1, xmmword [eax + 0x60]
addps xmm3, xmm1
cmp ecx, 7
je 0x41c59d
movq xmm2, qword [ebx + 0x70]
movhps xmm2, qword [ebx + 0x78]
mulps xmm2, xmmword [eax + 0x70]
addps xmm3, xmm2
cmp ecx, 8
je 0x41c59d
movq xmm4, qword [ebx + 0x80]
movhps xmm4, qword [ebx + 0x88]
mulps xmm4, xmmword [eax + 0x80]
addps xmm3, xmm4
cmp ecx, 9
je 0x41c59d
movq xmm5, qword [ebx + 0x90]
movhps xmm5, qword [ebx + 0x98]
mulps xmm5, xmmword [eax + 0x90]
addps xmm3, xmm5
movaps xmm0, xmm3
movhlps xmm0, xmm3
addps xmm0, xmm3
movaps xmm6, xmm0
shufps xmm6, xmm0, 0x55
addps xmm6, xmm0
addss xmm6, xmm7
mov eax, dword [esp + 0x28]
test al, 3
je 0x41c666
and eax, 0xfffffffc
mov ecx, dword [esp + 0x20]
add ecx, eax
mov ebx, dword [esp + 0x24]
add eax, ebx
add eax, eax
add eax, eax
lea edx, [ecx + esi]
movss xmm7, dword [edi + eax]
mulss xmm7, dword [esp + edx*4 + 0x40]
addss xmm6, xmm7
lea ebx, [ecx + 1]
mov edx, dword [esp + 0x38]
cmp edx, ebx
jle 0x41c666
add ebx, esi
movss xmm3, dword [edi + eax + 4]
mulss xmm3, dword [esp + ebx*4 + 0x40]
addss xmm6, xmm3
lea ebx, [ecx + 2]
cmp edx, ebx
jle 0x41c666
add ebx, esi
movss xmm1, dword [edi + eax + 8]
mulss xmm1, dword [esp + ebx*4 + 0x40]
addss xmm6, xmm1
lea ebx, [ecx + 3]
cmp edx, ebx
jle 0x41c666
add ebx, esi
movss xmm2, dword [edi + eax + 0xc]
mulss xmm2, dword [esp + ebx*4 + 0x40]
addss xmm6, xmm2
lea ebx, [ecx + 4]
cmp edx, ebx
jle 0x41c666
add ebx, esi
movss xmm4, dword [edi + eax + 0x10]
mulss xmm4, dword [esp + ebx*4 + 0x40]
addss xmm6, xmm4
add ecx, 5
cmp edx, ecx
jle 0x41c666
add esi, ecx
movss xmm5, dword [edi + eax + 0x14]
mulss xmm5, dword [esp + esi*4 + 0x40]
addss xmm6, xmm5
mov eax, dword [esp + 0x38]
add dword [esp + 0x34], eax
movss dword [esp], xmm6
call sym._mbLogC
pxor xmm6, xmm6
cvtsi2ss xmm6, eax
mulss xmm6, dword [0x4a582c]
cvttss2si ecx, xmm6
mov dword [esp], ecx
call sym._mbExp
fstp dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
movss xmm7, dword [edi + edx*4]
movss xmm0, dword [0x4a5830]
mulss xmm0, dword [esp + 0x38]
addss xmm0, xmm7
movss dword [esp + edx*4 + 0xe8], xmm0
mov ebx, dword [esp + edx*4 + 0x238]
addss xmm7, xmm0
movss dword [esp], xmm7
call sym._mbLogC
sub ebx, eax
xor eax, eax
test ebx, ebx
setg al
add dword [esp + 0x18], eax
mov esi, 0xffffff38
cmp ebx, esi
cmovge esi, ebx
add dword [esp + 0x14], esi
mov ecx, ebx
mov edx, dword [esp + 0x30]
sub ecx, edx
mov eax, ecx
neg eax
cmovs eax, ecx
add dword [esp + 0x10], eax
add dword [esp + 0x3c], 1
mov ecx, dword [esp + 0x3c]
cmp dword [esp + 0x1c], ecx
jle 0x41c783
mov dword [esp + 0x30], ebx
mov esi, ecx
mov eax, ecx
mov ebx, dword [ebp + 0x10]
mov esi, dword [ebx + esi*8 + 4]
mov eax, dword [ebx + eax*8]
mov dword [esp + 0x38], eax
test eax, eax
jle 0x41ca6c
lea ecx, [esi + esi]
lea ecx, [ecx + ecx]
lea edx, [esp + 0x40]
add ecx, edx
shr ecx, 2
neg ecx
mov eax, ecx
and eax, 3
lea edx, [eax + 3]
mov ebx, 5
cmp edx, ebx
cmovae ebx, edx
mov edx, dword [esp + 0x38]
sub edx, 1
cmp edx, ebx
jb 0x41ca79
mov ebx, dword [esp + 0x34]
test eax, eax
jne 0x41c428
mov dword [esp + 0x24], ebx
movss xmm7, dword [0x4a5824]
mov dword [esp + 0x20], 0
jmp 0x41c486
mov esi, dword [ebp + 0xc]
mov edi, dword [esp + 0x18]
test edi, edi
jg 0x41ca8c
mov dword [esp + 0x3c], 0
mov edi, 0x12c
cmp dword [ebp + 0x1c], 3
setne bl
mov edx, dword [esp + 0x1c]
sub edx, 1
shr edx, 1
lea ecx, [edx + 1]
mov dword [esp + 0x30], ecx
xor eax, eax
and edx, 1
jne 0x41c86d
mov dword [esp], edi
call sym._mbExp
fstp dword [esp + 0x38]
movss xmm5, dword [esp + 0x38]
movss xmm1, dword [esp + 0xe8]
mulss xmm1, xmm5
movss xmm2, dword [esi]
movaps xmm4, xmm1
addss xmm4, xmm1
movss dword [esi], xmm4
comiss xmm1, xmm2
jbe 0x41c7fc
test bl, bl
jne 0x41cafa
mulss xmm5, dword [esp + 0xec]
movss xmm6, dword [esi + 4]
movaps xmm7, xmm5
addss xmm7, xmm5
movss dword [esi + 4], xmm7
comiss xmm5, xmm6
jbe 0x41c823
test bl, bl
jne 0x41cb0b
movss xmm0, dword [esp + 0x190]
movss xmm3, dword [esp + 0x194]
movaps xmm2, xmm3
addss xmm2, xmm0
mov eax, dword [ebp + 0x18]
movss dword [eax], xmm2
mulss xmm1, xmm0
mulss xmm5, xmm3
addss xmm1, xmm5
maxss xmm3, xmm0
divss xmm1, xmm3
movss dword [eax + 4], xmm1
mov eax, 1
mov edx, dword [esp + 0x30]
cmp eax, edx
je 0x41ca32
mov dword [esp + 0x38], edi
mov edi, eax
mov edx, dword [ebp + 0x18]
mov dword [ebp + 0x18], edx
mov eax, 0xd
cmp edi, eax
cmovge eax, edi
sub eax, 0xd
mov ecx, dword [esp + 0x3c]
imul eax, ecx
xor edx, edx
test eax, eax
cmovs eax, edx
mov ecx, dword [esp + 0x38]
add eax, ecx
mov dword [esp], eax
call sym._mbExp
fstp dword [esp + 0x34]
movss xmm5, dword [esp + 0x34]
movss xmm1, dword [esp + edi*8 + 0xe8]
mulss xmm1, xmm5
movss xmm4, dword [esi + edi*8]
movaps xmm6, xmm1
addss xmm6, xmm1
movss dword [esi + edi*8], xmm6
comiss xmm1, xmm4
mov eax, dword [ebp + 0x18]
jbe 0x41c8e2
test bl, bl
je 0x41c8e2
mulss xmm1, dword [0x4a5824]
maxss xmm1, xmm4
mulss xmm5, dword [esp + edi*8 + 0xec]
movss xmm7, dword [esi + edi*8 + 4]
movaps xmm0, xmm5
addss xmm0, xmm5
movss dword [esi + edi*8 + 4], xmm0
comiss xmm5, xmm7
jbe 0x41c913
test bl, bl
je 0x41c913
mulss xmm5, dword [0x4a5824]
maxss xmm5, xmm7
movss xmm3, dword [esp + edi*8 + 0x190]
movss xmm2, dword [esp + edi*8 + 0x194]
movaps xmm4, xmm2
addss xmm4, xmm3
movss dword [eax + edi*8], xmm4
mulss xmm1, xmm3
mulss xmm5, xmm2
addss xmm5, xmm1
maxss xmm2, xmm3
divss xmm5, xmm2
movss dword [eax + edi*8 + 4], xmm5
mov dword [ebp + 0x18], eax
add edi, 1
mov edx, 0xd
cmp edi, edx
cmovge edx, edi
sub edx, 0xd
mov ecx, dword [esp + 0x3c]
imul edx, ecx
xor eax, eax
test edx, edx
cmovs edx, eax
mov ecx, dword [esp + 0x38]
add edx, ecx
mov dword [esp], edx
call sym._mbExp
fstp dword [esp + 0x34]
movss xmm5, dword [esp + 0x34]
movss xmm1, dword [esp + edi*8 + 0xe8]
mulss xmm1, xmm5
movss xmm6, dword [esi + edi*8]
movaps xmm7, xmm1
addss xmm7, xmm1
movss dword [esi + edi*8], xmm7
comiss xmm1, xmm6
mov edx, dword [ebp + 0x18]
jbe 0x41c9ba
test bl, bl
je 0x41c9ba
mulss xmm1, dword [0x4a5824]
maxss xmm1, xmm6
mulss xmm5, dword [esp + edi*8 + 0xec]
movss xmm0, dword [esi + edi*8 + 4]
movaps xmm3, xmm5
addss xmm3, xmm5
movss dword [esi + edi*8 + 4], xmm3
comiss xmm5, xmm0
jbe 0x41c9eb
test bl, bl
je 0x41c9eb
mulss xmm5, dword [0x4a5824]
maxss xmm5, xmm0
movss xmm6, dword [esp + edi*8 + 0x190]
movss xmm2, dword [esp + edi*8 + 0x194]
movaps xmm4, xmm2
addss xmm4, xmm6
movss dword [edx + edi*8], xmm4
mulss xmm1, xmm6
mulss xmm5, xmm2
addss xmm5, xmm1
maxss xmm2, xmm6
divss xmm5, xmm2
movss dword [edx + edi*8 + 4], xmm5
add edi, 1
mov eax, dword [esp + 0x30]
cmp edi, eax
jne 0x41c876
lea esp, [ebp - 0xc]
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [esp + 0x34]
lea ecx, [edx + 1]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], 1
mov ebx, edx
jmp 0x41c486
mov ebx, dword [esp + 0x34]
lea edx, [ebx + 2]
mov dword [esp + 0x24], edx
mov dword [esp + 0x20], 2
jmp 0x41c486
movss xmm6, dword [0x4a5824]
jmp 0x41c66e
mov eax, dword [esp + 0x34]
movss xmm6, dword [0x4a5824]
xor ecx, ecx
jmp 0x41c5cf
mov eax, dword [esp + 0x14]
mov ebx, dword [esp + 0x1c]
cdq
idiv ebx
pxor xmm3, xmm3
cvtsi2ss xmm3, eax
mulss xmm3, dword [0x4a5834]
subss xmm3, dword [0x4a5838]
movss dword [esp], xmm3
call sym._round_to_int
mov ecx, eax
mov eax, dword [esp + 0x10]
cdq
idiv ebx
mov edi, 0x1f4
sub edi, eax
xor ebx, ebx
test edi, edi
cmovle ebx, edi
add ebx, ecx
mov ecx, 0xfffff830
cmp ebx, ecx
cmovl ebx, ecx
mov eax, 0x258
cmp ebx, eax
cmovg ebx, eax
lea edi, [ebx + 0x12c]
neg ebx
sar ebx, 4
mov dword [esp + 0x3c], ebx
jmp 0x41c79f
mulss xmm1, dword [0x4a5824]
maxss xmm1, xmm2
jmp 0x41c7fc
mulss xmm5, dword [0x4a5824]
maxss xmm5, xmm6
jmp 0x41c823