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

Disassembly:
sub esp, 0x9c
push ebx
push ebp
xorps xmm0, xmm0
mov dword [esp + 0x20], 0xffffffff
push esi
mov esi, dword [esp + 0xb0]
xor ebx, ebx
movlpd qword [esp + 0x28], xmm0
movlpd qword [esp + 0x1c], xmm0
movlpd qword [esp + 0x68], xmm0
movlpd qword [esp + 0x44], xmm0
movlpd qword [esp + 0x78], xmm0
mov dword [esp + 0x18], 0xffffffff
mov dword [esp + 0x80], 1
mov dword [esp + 0x98], 1
mov dword [esp + 0x9c], 1
mov dword [esp + 0xa0], 1
mov dword [esp + 0xa4], 1
mov dword [esp + 0x34], ebx
push edi
test esi, esi
jle 0x4ec035
mov eax, dword [esp + 0x30]
mov ebp, dword [esp + 0xb0]
mov ecx, dword [esp + 0x20]
add ebp, 0xfffffffc
mov dword [esp + 0x98], eax
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x94], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x3c], ecx
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x34], ebp
mov dword [esp + 0x40], ecx
mov dword [esp + 0x78], eax
nop
mov ecx, dword [ebp + 4]
lea eax, [ebp + 4]
mov dword [esp + 0x2c], eax
mov eax, ecx
cdq
mov esi, eax
mov edi, edx
mov dword [esp + 0x8c], esi
mov dword [esp + 0x50], edi
test ecx, ecx
jns 0x4ebc48
mov ecx, esi
mov eax, edi
neg ecx
mov dword [esp + 0x7c], ecx
adc eax, 0
neg eax
mov dword [esp + 0x90], eax
jmp 0x4ebc53
mov dword [esp + 0x7c], esi
mov dword [esp + 0x90], edi
test ebx, ebx
je 0x4ebee2
mov eax, dword [ebp]
mov ecx, esi
cdq
mov ebx, edi
sub ecx, eax
sbb ebx, edx
test ebx, ebx
jg 0x4ebc7b
jl 0x4ebc71
test ecx, ecx
jae 0x4ebc7b
sub eax, esi
sbb edx, edi
mov dword [esp + 0x58], edx
jmp 0x4ebc83
mov eax, ecx
mov dword [esp + 0x58], ebx
mov edx, ebx
cmp dword [esp + 0x38], 1
mov dword [esp + 0x54], eax
mov dword [esp + 0x18], eax
jbe 0x4ebef7
mov eax, dword [ebp - 4]
mov ecx, 2
mov ebx, dword [ebp]
cdq
mov ebp, eax
mov dword [esp + 0x10], edx
mov eax, ebx
mov dword [esp + 0x18], ebp
imul ecx
mov ecx, esi
sub ecx, eax
mov eax, edi
sbb eax, edx
add ecx, ebp
adc eax, dword [esp + 0x10]
test eax, eax
jg 0x4ebce3
jl 0x4ebcc8
test ecx, ecx
jae 0x4ebce3
mov eax, ebx
mov ecx, 2
imul ecx
mov ebp, eax
mov ebx, edx
sub ebp, esi
sbb ebx, edi
sub ebp, dword [esp + 0x18]
sbb ebx, dword [esp + 0x10]
jmp 0x4ebcfc
mov eax, ebx
mov ecx, 2
imul ecx
mov ebp, esi
mov ebx, edi
sub ebp, eax
sbb ebx, edx
add ebp, dword [esp + 0x18]
adc ebx, dword [esp + 0x10]
cmp dword [esp + 0x38], 2
mov eax, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x20], ebx
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], ebx
jbe 0x4ebf10
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax - 4]
mov eax, dword [eax - 8]
cdq
mov dword [esp + 0x14], eax
mov eax, ecx
mov dword [esp + 0x6c], ecx
mov ecx, 3
mov dword [esp + 0x48], edx
imul ecx
mov edi, eax
mov ecx, edx
mov eax, dword [esp + 0x10]
mov edx, 3
imul edx
sub edi, eax
sbb ecx, edx
sub edi, dword [esp + 0x14]
sbb ecx, dword [esp + 0x48]
add edi, esi
mov dword [esp + 0x18], edi
adc ecx, dword [esp + 0x50]
mov dword [esp + 0x5c], ecx
test ecx, ecx
jg 0x4ebdb4
jl 0x4ebd78
test edi, edi
jae 0x4ebdb4
mov eax, dword [esp + 0x6c]
mov edi, 3
imul edi
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x10]
imul edi
sub eax, ecx
mov dword [esp + 0x5c], edx
mov ecx, edx
sbb ecx, esi
sub eax, dword [esp + 0x8c]
sbb ecx, dword [esp + 0x50]
add eax, dword [esp + 0x14]
mov dword [esp + 0x18], eax
adc ecx, dword [esp + 0x48]
mov dword [esp + 0x5c], ecx
jmp 0x4ebdb8
mov eax, dword [esp + 0x18]
cmp dword [esp + 0x38], 3
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x10], ebx
jbe 0x4ebf25
mov eax, dword [esp + 0x34]
mov ecx, dword [eax]
mov ebx, dword [eax - 4]
mov dword [esp + 0x10], ecx
mov ecx, dword [eax - 8]
mov eax, dword [eax - 0xc]
cdq
mov dword [esp + 0x14], eax
mov eax, ecx
mov dword [esp + 0x48], ecx
mov ecx, 4
mov dword [esp + 0x34], edx
imul ecx
mov dword [esp + 0x6c], ebx
mov ecx, eax
mov esi, edx
mov eax, ebx
mov edx, 6
imul edx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x10]
sub ebx, ecx
mov ecx, 4
sbb edi, esi
mov esi, dword [esp + 0x50]
imul ecx
mov ecx, dword [esp + 0x8c]
sub ebx, eax
sbb edi, edx
add ebx, ecx
adc edi, esi
add ebx, dword [esp + 0x14]
adc edi, dword [esp + 0x34]
test edi, edi
jg 0x4ebe80
jl 0x4ebe45
test ebx, ebx
jae 0x4ebe80
mov eax, dword [esp + 0x48]
mov edx, 4
imul edx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x6c]
mov edx, 6
imul edx
sub ebx, eax
mov eax, dword [esp + 0x10]
sbb edi, edx
mov edx, 4
imul edx
add ebx, eax
adc edi, edx
sub ebx, ecx
sbb edi, esi
sub ebx, dword [esp + 0x14]
sbb edi, dword [esp + 0x34]
jmp 0x4ebec4
mov eax, dword [esp + 0x48]
mov ecx, 4
imul ecx
mov ecx, eax
mov esi, edx
mov eax, dword [esp + 0x6c]
mov edx, 6
imul edx
mov ebx, eax
mov edi, edx
mov eax, dword [esp + 0x10]
sub ebx, ecx
mov ecx, 4
sbb edi, esi
imul ecx
sub ebx, eax
sbb edi, edx
add ebx, dword [esp + 0x8c]
adc edi, dword [esp + 0x50]
add ebx, dword [esp + 0x14]
adc edi, dword [esp + 0x34]
mov esi, dword [esp + 0x54]
mov edx, dword [esp + 0x58]
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x5c]
mov dword [esp + 0x14], ebp
mov ebp, dword [esp + 0x20]
mov dword [esp + 0x10], ebp
jmp 0x4ebf36
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp + 0x18], eax
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
mov edi, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov dword [esp + 0x10], edi
mov dword [esp + 0x14], eax
mov esi, dword [esp + 0x18]
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
mov ecx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
xorps xmm0, xmm0
movlpd qword [esp + 0x20], xmm0
mov edi, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov ebp, dword [esp + 0x94]
add ebp, dword [esp + 0x7c]
mov dword [esp + 0x94], ebp
mov ebp, dword [esp + 0x98]
adc ebp, dword [esp + 0x90]
add dword [esp + 0x3c], esi
mov dword [esp + 0x98], ebp
adc dword [esp + 0x60], edx
mov ebp, dword [esp + 0x40]
add ebp, dword [esp + 0x14]
mov dword [esp + 0x40], ebp
mov ebp, dword [esp + 0x10]
adc dword [esp + 0x64], ebp
add dword [esp + 0x44], eax
adc dword [esp + 0x74], ecx
add dword [esp + 0x78], ebx
adc dword [esp + 0x68], edi
cmp dword [esp + 0x90], 0
ja 0x4ebf9d
cmp dword [esp + 0x7c], 0x7fffffff
jbe 0x4ebfa8
mov dword [esp + 0x84], 0
test edx, edx
jne 0x4ebfb4
cmp esi, 0x7fffffff
jbe 0x4ebfbf
mov dword [esp + 0x9c], 0
test ebp, ebp
jne 0x4ebfcd
cmp dword [esp + 0x14], 0x7fffffff
jbe 0x4ebfd8
mov dword [esp + 0xa0], 0
test ecx, ecx
jne 0x4ebfe3
cmp eax, 0x7fffffff
jbe 0x4ebfee
mov dword [esp + 0xa4], 0
test edi, edi
jne 0x4ebffa
cmp ebx, 0x7fffffff
jbe 0x4ec005
mov dword [esp + 0xa8], 0
mov ebx, dword [esp + 0x38]
mov esi, dword [esp + 0xb4]
inc ebx
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x38], ebx
mov dword [esp + 0x34], ebp
cmp ebx, esi
jl 0x4ebc10
mov ebx, dword [esp + 0x94]
mov ebp, dword [esp + 0x98]
jmp 0x4ec080
mov eax, dword [esp + 0x24]
mov ebp, dword [esp + 0x30]
mov ebx, dword [esp + 0x2c]
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x3c], eax
mov eax, dword [esp + 0x70]
mov dword [esp + 0x64], eax
mov eax, dword [esp + 0x6c]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x74], eax
mov eax, dword [esp + 0x48]
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x80]
mov dword [esp + 0x68], eax
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x78], eax
cmp dword [esp + 0x84], 0
movss xmm1, dword [0x5fb4d0]
je 0x4ec11c
cmp ebp, 0xffffffff
ja 0x4ec11c
jb 0x4ec0a6
cmp ebx, 0xffffffff
jae 0x4ec11c
mov edx, ebp
mov dword [esp + 0x28], ebx
mov ecx, ebx
mov dword [esp + 0x1c], ebp
call fcn.0054fb40
movd xmm1, esi
cvtdq2pd xmm1, xmm1
shr esi, 0x1f
movsd qword [esp + 0x2c], xmm0
addsd xmm1, qword [esi*8 + 0x619ef0]
movsd qword [esp + 0x84], xmm1
test ebp, ebp
jne 0x4ec0eb
test ebx, ebx
jne 0x4ec0eb
xorps xmm3, xmm3
cvtsd2ss xmm3, xmm3
jmp 0x4ec14e
mulsd xmm0, qword [0x5fb4c0]
divsd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_log
movsd xmm1, qword [esp + 0x84]
movaps xmm3, xmm0
mulsd xmm3, qword [0x5fb4c8]
movsd xmm0, qword [esp + 0x2c]
cvtsd2ss xmm3, xmm3
jmp 0x4ec14e
mov edx, ebp
movss dword [esp + 0x2c], xmm1
mov ecx, ebx
call fcn.0054fb40
movss xmm3, dword [esp + 0x2c]
movd xmm1, esi
cvtdq2pd xmm1, xmm1
shr esi, 0x1f
addsd xmm1, qword [esi*8 + 0x619ef0]
movsd qword [esp + 0x84], xmm1
cmp dword [esp + 0x9c], 0
xorps xmm2, xmm2
mov edi, dword [esp + 0xb8]
mov edx, dword [esp + 0x1c]
movss dword [edi], xmm3
je 0x4ec1ed
mov eax, dword [esp + 0x60]
cmp eax, edx
ja 0x4ec1ed
mov ecx, dword [esp + 0x3c]
jb 0x4ec182
cmp ecx, dword [esp + 0x28]
jae 0x4ec1ed
mov dword [esp + 0x28], ecx
mov esi, 1
mov dword [esp + 0x1c], eax
test ebp, ebp
jne 0x4ec1a7
test ebx, ebx
jne 0x4ec1a7
mulsd xmm0, qword [0x5fb4c0]
movsd qword [esp + 0x2c], xmm0
jmp 0x4ec1d8
mulsd xmm0, qword [0x5fb4c0]
movsd qword [esp + 0x2c], xmm0
divsd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_log
movsd xmm1, qword [esp + 0x84]
movaps xmm2, xmm0
mulsd xmm2, qword [0x5fb4c8]
movsd xmm0, qword [esp + 0x2c]
mov edx, dword [esp + 0x1c]
xorps xmm3, xmm3
cvtsd2ss xmm3, xmm2
movss xmm2, dword [0x5fb4d0]
jmp 0x4ec208
mulsd xmm0, qword [0x5fb4c0]
xor esi, esi
movss xmm2, dword [0x5fb4d0]
movaps xmm3, xmm2
movsd qword [esp + 0x2c], xmm0
cmp dword [esp + 0xa0], 0
movss dword [edi + 4], xmm3
je 0x4ec276
mov eax, dword [esp + 0x64]
cmp eax, edx
ja 0x4ec276
mov ecx, dword [esp + 0x40]
jb 0x4ec22b
cmp ecx, dword [esp + 0x28]
jae 0x4ec276
mov dword [esp + 0x28], ecx
mov esi, 2
mov dword [esp + 0x1c], eax
test ebp, ebp
jne 0x4ec253
test ebx, ebx
jne 0x4ec253
movss xmm2, dword [0x5fb4d0]
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm0
mov edx, eax
jmp 0x4ec279
divsd xmm0, xmm1
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_log
mulsd xmm0, qword [0x5fb4c8]
mov edx, dword [esp + 0x1c]
movss xmm2, dword [0x5fb4d0]
cvtsd2ss xmm0, xmm0
jmp 0x4ec279
movaps xmm0, xmm2
cmp dword [esp + 0xa4], 0
movss dword [edi + 8], xmm0
je 0x4ec2f2
mov eax, dword [esp + 0x74]
cmp eax, edx
ja 0x4ec2f2
mov ecx, dword [esp + 0x44]
jb 0x4ec29c
cmp ecx, dword [esp + 0x28]
jae 0x4ec2f2
mov dword [esp + 0x28], ecx
mov esi, 3
mov dword [esp + 0x1c], eax
test ebp, ebp
jne 0x4ec2c4
test ebx, ebx
jne 0x4ec2c4
movss xmm2, dword [0x5fb4d0]
xorps xmm0, xmm0
cvtsd2ss xmm0, xmm0
mov edx, eax
jmp 0x4ec2f5
movsd xmm0, qword [esp + 0x2c]
divsd xmm0, qword [esp + 0x84]
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_log
mulsd xmm0, qword [0x5fb4c8]
mov edx, dword [esp + 0x1c]
movss xmm2, dword [0x5fb4d0]
cvtsd2ss xmm0, xmm0
jmp 0x4ec2f5
movaps xmm0, xmm2
cmp dword [esp + 0xa8], 0
movss dword [edi + 0xc], xmm0
je 0x4ec34b
cmp dword [esp + 0x68], edx
ja 0x4ec34b
jb 0x4ec316
mov eax, dword [esp + 0x78]
cmp eax, dword [esp + 0x28]
jae 0x4ec34b
mov esi, 4
test ebp, ebp
jne 0x4ec328
test ebx, ebx
jne 0x4ec328
xorps xmm0, xmm0
jmp 0x4ec344
movsd xmm0, qword [esp + 0x2c]
divsd xmm0, qword [esp + 0x84]
call sub.api_ms_win_crt_math_l1_1_0.dll___libm_sse2_log
mulsd xmm0, qword [0x5fb4c8]
xorps xmm2, xmm2
cvtsd2ss xmm2, xmm0
movss dword [edi + 0x10], xmm2
mov eax, esi
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x9c
ret