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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov ebx, ecx
cmp edx, 0x10
jae 0x4b3360
test edx, edx
je 0x4b336b
xor eax, eax
mov esi, edx
cmp edx, 8
mov edi, 0
jb 0x4b334a
movd xmm0, dword [ebx + 4]
movdqa xmm1, xmmword [0x5739c0]
movd xmm3, dword [ebx]
movdqa xmm2, xmmword [0x5739d0]
mov edi, 8
pcmpgtb xmm0, xmm1
pcmpgtb xmm3, xmm1
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
pand xmm0, xmm2
punpcklbw xmm3, xmm3
punpcklwd xmm3, xmm3
pand xmm3, xmm2
paddd xmm3, xmm0
pshufd xmm0, xmm3, 0xee
paddd xmm0, xmm3
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd eax, xmm1
je 0x4b336f
mov ecx, esi
sub ecx, edi
add edi, ebx
xor edx, edx
cmp byte [edi], 0xc0
setge dl
inc edi
add eax, edx
dec ecx
jne 0x4b3350
jmp 0x4b336f
mov ecx, ebx
mov esi, edx
call fcn.00469e80
jmp 0x4b336f
mov esi, edx
xor eax, eax
mov edx, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [esp + 0x20], eax
cmp edx, 0x10
jae 0x4b3414
test edx, edx
je 0x4b341d
cmp edx, 8
mov edx, 0
mov eax, 0
jb 0x4b33f6
mov eax, dword [ebp + 8]
movdqa xmm1, xmmword [0x5739c0]
movdqa xmm2, xmmword [0x5739d0]
movd xmm0, dword [eax + 4]
movd xmm3, dword [eax]
mov eax, 8
pcmpgtb xmm0, xmm1
pcmpgtb xmm3, xmm1
punpcklbw xmm0, xmm0
punpcklwd xmm0, xmm0
pand xmm0, xmm2
punpcklbw xmm3, xmm3
punpcklwd xmm3, xmm3
pand xmm3, xmm2
paddd xmm3, xmm0
pshufd xmm0, xmm3, 0xee
paddd xmm0, xmm3
pshufd xmm1, xmm0, 0x55
paddd xmm1, xmm0
movd edx, xmm1
je 0x4b341f
mov ecx, dword [ebp + 0xc]
sub ecx, eax
add eax, dword [ebp + 8]
nop
mov edi, edx
xor edx, edx
cmp byte [eax], 0xc0
setge dl
inc eax
add edi, edx
dec ecx
mov edx, edi
jne 0x4b3400
jmp 0x4b341f
call fcn.00469e80
mov edx, eax
jmp 0x4b341f
xor edx, edx
mov ecx, dword [esp + 0x20]
lea eax, [ebx + esi]
mov edi, dword [ebp + 8]
movsd xmm0, qword [0x5739e0]
mov dword [esp + 0x50], eax
mov eax, edx
or eax, ecx
mov eax, dword [ebp + 0xc]
lea eax, [edi + eax]
mov dword [esp + 0x2c], eax
je 0x4b39d7
test ecx, ecx
xorpd xmm4, xmm4
je 0x4b39db
test edx, edx
je 0x4b39db
cmp dword [esp + 0x20], 1
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
jne 0x4b35cf
cmp edx, 1
jne 0x4b35cf
mov eax, edi
mov ecx, ebx
jmp 0x4b348d
inc eax
cmp ebx, edx
mov ebx, dword [esp + 0xc]
jne 0x4b3981
cmp ecx, dword [esp + 0x50]
je 0x4b3987
movzx edx, byte [ecx]
test dl, dl
js 0x4b34b0
inc ecx
cmp eax, dword [esp + 0x2c]
jne 0x4b3540
jmp 0x4b3981
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4b3507
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4b3520
movzx edx, byte [ecx + 3]
shl edi, 6
and esi, 7
mov ebx, dword [esp + 0xc]
shl esi, 0x12
and edx, 0x3f
or edx, edi
mov edi, dword [ebp + 8]
or edx, esi
cmp edx, 0x110000
je 0x4b3987
add ecx, 4
cmp eax, dword [esp + 0x2c]
jne 0x4b3540
jmp 0x4b3981
shl esi, 6
add ecx, 2
or esi, ebx
mov ebx, dword [esp + 0xc]
mov edx, esi
cmp eax, dword [esp + 0x2c]
jne 0x4b3540
jmp 0x4b3981
shl esi, 0xc
mov ebx, dword [esp + 0xc]
add ecx, 3
or edi, esi
mov edx, edi
mov edi, dword [ebp + 8]
cmp eax, dword [esp + 0x2c]
je 0x4b3981
nop dword [eax + eax]
movzx ebx, byte [eax]
test bl, bl
jns 0x4b3480
mov dword [esp + 0x30], ecx
mov ecx, eax
movzx eax, byte [eax + 1]
mov esi, ebx
and esi, 0x1f
and eax, 0x3f
cmp bl, 0xdf
jbe 0x4b359d
movzx edi, byte [ecx + 2]
shl eax, 6
and edi, 0x3f
or edi, eax
cmp bl, 0xf0
jb 0x4b35ab
movzx ebx, byte [ecx + 3]
and esi, 7
shl edi, 6
shl esi, 0x12
and ebx, 0x3f
or ebx, edi
or ebx, esi
cmp ebx, 0x110000
je 0x4b3baf
mov edi, dword [ebp + 8]
mov eax, ecx
add eax, 4
jmp 0x4b35ba
shl esi, 6
add ecx, 2
or esi, eax
mov eax, ecx
mov ebx, esi
jmp 0x4b35ba
shl esi, 0xc
add ecx, 3
or edi, esi
mov eax, ecx
mov ebx, edi
mov edi, dword [ebp + 8]
mov ecx, dword [esp + 0x30]
cmp ebx, edx
mov ebx, dword [esp + 0xc]
je 0x4b348d
jmp 0x4b3981
mov eax, dword [esp + 0x20]
mov ecx, edx
cmp eax, edx
cmova ecx, eax
test edx, edx
mov dword [esp + 0x28], ecx
js 0x4b3bd5
movzx eax, byte [0x597110]
mov eax, dword [0x5970d8]
test eax, eax
jne 0x4b360c
mov esi, edx
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x4b3bc9
mov edx, esi
mov dword [0x5970d8], eax
push edx
push 0
push eax
mov esi, edx
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x4b3bc9
mov ecx, dword [esp + 0x28]
xor edx, edx
mov dword [esp + 0x54], esi
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x64], esi
shr ecx, 1
mov dword [esp + 0x28], ecx
dec ecx
mov dword [esp + 0x14], ecx
jmp 0x4b3660
mov byte [eax + edx], 0
mov edx, dword [esp + 0x5c]
inc edx
dec esi
mov dword [esp + 0x5c], edx
je 0x4b3679
cmp edx, dword [esp + 0x54]
jne 0x4b3650
lea ecx, [esp + 0x54]
call fcn.0042a7f0
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
jmp 0x4b3650
mov eax, dword [esp + 0x64]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x58]
neg dword [esp + 0x28]
movsd xmm2, qword [0x5739e0]
mov esi, dword [esp + 0x14]
xorpd xmm0, xmm0
mov dword [esp + 0x60], 0
pxor xmm1, xmm1
mov dword [esp + 0x30], ebx
xor ecx, ecx
dec eax
mov dword [esp + 0x4c], edx
mov dword [esp + 0x70], eax
nop word cs:[eax + eax]
nop
mov ebx, dword [esp + 0x30]
cmp ebx, dword [esp + 0x50]
je 0x4b38fd
movzx eax, byte [ebx]
test al, al
js 0x4b36e0
inc ebx
jmp 0x4b3760
movzx edi, byte [ebx + 1]
mov edx, eax
and eax, 0x1f
and edi, 0x3f
cmp dl, 0xdf
jbe 0x4b3738
mov esi, ebx
shl edi, 6
add ebx, 3
movzx esi, byte [esi + 2]
and esi, 0x3f
or esi, edi
cmp dl, 0xf0
jb 0x4b3745
movzx edi, byte [ebx]
and eax, 7
shl esi, 6
mov ebx, dword [esp + 0x30]
shl eax, 0x12
and edi, 0x3f
or edi, esi
mov esi, dword [esp + 0x14]
or edi, eax
mov eax, edi
cmp edi, 0x110000
mov edi, dword [ebp + 8]
je 0x4b38fd
add ebx, 4
jmp 0x4b3760
shl eax, 6
add ebx, 2
or eax, edi
mov edi, dword [ebp + 8]
jmp 0x4b3760
shl eax, 0xc
mov edi, dword [ebp + 8]
or esi, eax
mov eax, esi
mov esi, dword [esp + 0x14]
nop word cs:[eax + eax]
nop dword [eax]
mov dword [esp + 0x78], eax
lea eax, [ecx + 1]
cmp ecx, esi
mov dword [esp + 0x30], ebx
jbe 0x4b37a4
add ecx, esi
mov ebx, edi
mov edi, esi
mov esi, eax
mov eax, dword [esp + 0x70]
mov edx, ecx
cmp eax, ecx
mov ecx, dword [esp + 0x28]
cmovb edx, eax
mov eax, esi
mov esi, edi
mov edi, ebx
lea ebx, [ecx + eax]
mov ecx, eax
cmp ebx, edx
ja 0x4b36c0
cmp dword [ebp + 0xc], 0
jne 0x4b37bd
jmp 0x4b38f6
mov ebx, dword [esp + 0x70]
add ecx, esi
cmp ebx, ecx
cmovb ecx, ebx
xor ebx, ebx
mov edx, ecx
cmp dword [ebp + 0xc], 0
je 0x4b38f6
mov dword [esp + 0x24], ebx
xor ecx, ecx
mov ebx, edi
mov dword [esp + 0x1c], eax
jmp 0x4b37df
mov ebx, dword [esp + 0x18]
inc ecx
cmp ebx, dword [esp + 0x2c]
je 0x4b38f2
movzx eax, byte [ebx]
test al, al
js 0x4b3800
inc ebx
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x24]
cmp ebx, ecx
jbe 0x4b38a0
jmp 0x4b37d0
movzx esi, byte [ebx + 1]
mov edi, eax
and edi, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x4b386e
mov dword [esp + 0x74], esi
lea esi, [ebx + 3]
mov dword [esp + 0x18], ebx
movzx ebx, byte [ebx + 2]
mov dword [esp + 0x68], esi
mov esi, dword [esp + 0x74]
and ebx, 0x3f
shl esi, 6
or ebx, esi
cmp al, 0xf0
jb 0x4b387e
mov eax, dword [esp + 0x68]
shl ebx, 6
and edi, 7
mov esi, dword [esp + 0x14]
shl edi, 0x12
movzx eax, byte [eax]
and eax, 0x3f
or eax, ebx
mov ebx, dword [esp + 0x24]
or eax, edi
cmp eax, 0x110000
je 0x4b38ef
add dword [esp + 0x18], 4
mov edi, dword [ebp + 8]
cmp ebx, ecx
jbe 0x4b38a0
jmp 0x4b37d0
shl edi, 6
add ebx, 2
or edi, esi
mov dword [esp + 0x18], ebx
mov eax, edi
jmp 0x4b388d
mov esi, dword [esp + 0x68]
shl edi, 0xc
or ebx, edi
mov eax, ebx
mov dword [esp + 0x18], esi
mov edi, dword [ebp + 8]
mov esi, dword [esp + 0x14]
mov ebx, dword [esp + 0x24]
cmp ebx, ecx
ja 0x4b37d0
cmp ecx, edx
ja 0x4b37d0
cmp dword [esp + 0x78], eax
jne 0x4b37d0
cmp ecx, dword [esp + 0x6c]
jae 0x4b3bbb
mov eax, dword [esp + 0x4c]
cmp byte [eax + ecx], 0
jne 0x4b37d0
mov eax, dword [esp + 0x4c]
cmp ecx, dword [esp + 0x60]
mov byte [eax + ecx], 1
jae 0x4b38dc
addsd xmm0, xmm2
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x60], ecx
addsd xmm1, xmm2
mov ecx, eax
jmp 0x4b36c0
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x1c]
mov ecx, eax
jmp 0x4b36c0
xorpd xmm4, xmm4
ucomisd xmm1, xmm4
jne 0x4b3909
jnp 0x4b3959
movss xmm2, dword [esp + 0x64]
movss xmm3, dword [esp + 0x20]
movapd xmm4, xmm1
subsd xmm4, xmm0
divsd xmm4, xmm1
unpcklpd xmm3, xmm2
movapd xmm2, xmmword [0x5739f0]
orpd xmm3, xmm2
subpd xmm3, xmm2
movapd xmm2, xmm1
unpcklpd xmm2, xmm1
divpd xmm2, xmm3
movapd xmm3, xmm2
unpckhpd xmm3, xmm2
addsd xmm3, xmm2
addsd xmm4, xmm3
mulsd xmm4, qword [0x573a00]
cmp dword [esp + 0x54], 0
mov ebx, dword [esp + 0xc]
je 0x4b3981
push dword [esp + 0x4c]
push 0
push dword [0x5970d8]
movapd xmmword [esp + 0x3c], xmm4
call sub.KERNEL32.dll_HeapFree
movapd xmm4, xmmword [esp + 0x30]
mov esi, dword [esp + 0x10]
jmp 0x4b39db
cmp eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x10]
je 0x4b39d7
movzx ecx, byte [eax]
test cl, cl
jns 0x4b39db
cmp cl, 0xe0
jb 0x4b39db
cmp cl, 0xf0
jb 0x4b39db
movzx esi, byte [eax + 1]
mov edx, eax
movzx eax, byte [eax + 2]
and ecx, 7
movzx edx, byte [edx + 3]
shl ecx, 0x12
and esi, 0x3f
and eax, 0x3f
shl esi, 0xc
shl eax, 6
and edx, 0x3f
or eax, esi
mov esi, dword [esp + 0x10]
or edx, eax
or edx, ecx
cmp edx, 0x110000
jne 0x4b39db
movapd xmm4, xmm0
xor eax, eax
test esi, esi
je 0x4b3b6f
nop word cs:[eax + eax]
nop
movzx ecx, byte [ebx]
test cl, cl
js 0x4b3a10
inc ebx
cmp edi, dword [esp + 0x2c]
jne 0x4b3aa0
jmp 0x4b3b6f
mov dword [esp + 0x30], edi
movzx edi, byte [ebx + 1]
mov edx, ecx
and edx, 0x1f
and edi, 0x3f
cmp cl, 0xdf
jbe 0x4b3a68
movzx esi, byte [ebx + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp cl, 0xf0
jb 0x4b3a81
movzx ecx, byte [ebx + 3]
and edx, 7
shl esi, 6
mov edi, dword [esp + 0x30]
shl edx, 0x12
and ecx, 0x3f
or ecx, esi
or ecx, edx
cmp ecx, 0x110000
je 0x4b3b6f
add ebx, 4
cmp edi, dword [esp + 0x2c]
jne 0x4b3aa0
jmp 0x4b3b6f
shl edx, 6
add ebx, 2
or edx, edi
mov edi, dword [esp + 0x30]
mov ecx, edx
cmp edi, dword [esp + 0x2c]
jne 0x4b3aa0
jmp 0x4b3b6f
mov edi, dword [esp + 0x30]
shl edx, 0xc
add ebx, 3
or esi, edx
mov ecx, esi
cmp edi, dword [esp + 0x2c]
je 0x4b3b6f
nop dword [eax]
movzx edx, byte [edi]
test dl, dl
js 0x4b3ac0
inc edi
cmp ecx, 0x110000
jne 0x4b3b60
jmp 0x4b3b6f
mov dword [esp + 0xc], ebx
movzx ebx, byte [edi + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4b3b1f
mov dword [esp + 0x30], edi
movzx edi, byte [edi + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4b3b37
mov edx, dword [esp + 0x30]
and esi, 7
shl edi, 6
mov ebx, dword [esp + 0xc]
shl esi, 0x12
movzx edx, byte [edx + 3]
and edx, 0x3f
or edx, edi
or edx, esi
cmp edx, 0x110000
je 0x4b3b6f
mov edi, dword [esp + 0x30]
add edi, 4
cmp ecx, 0x110000
jne 0x4b3b60
jmp 0x4b3b6f
shl esi, 6
add edi, 2
or esi, ebx
mov ebx, dword [esp + 0xc]
mov edx, esi
cmp ecx, 0x110000
jne 0x4b3b60
jmp 0x4b3b6f
shl esi, 0xc
add dword [esp + 0x30], 3
mov ebx, dword [esp + 0xc]
or edi, esi
mov edx, edi
mov edi, dword [esp + 0x30]
cmp ecx, 0x110000
je 0x4b3b6f
nop word cs:[eax + eax]
nop dword [eax]
cmp ecx, edx
jne 0x4b3b6f
inc eax
cmp ebx, dword [esp + 0x50]
jne 0x4b39f0
movd xmm1, eax
movsd xmm2, qword [0x5739e0]
por xmm1, xmmword [0x5739f0]
movapd xmm0, xmm2
subsd xmm1, qword [0x573a08]
subsd xmm0, xmm4
mulsd xmm1, qword [0x573a10]
mulsd xmm0, xmm1
addsd xmm0, xmm4
minsd xmm0, xmm2
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov ebx, dword [esp + 0xc]
mov edi, dword [ebp + 8]
jmp 0x4b3981
mov edx, dword [esp + 0x6c]
push 0x584148
call fcn.00469a50
mov ecx, 1
mov edx, esi
call fcn.00429f40
call fcn.00429f00
nop word [eax + eax]