Function at 0x4b3720
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 0x4b37c0
test edx, edx
je 0x4b37cb
xor eax, eax
mov esi, edx
cmp edx, 8
mov edi, 0
jb 0x4b37aa
movd xmm0, dword [ebx + 4]
movdqa xmm1, xmmword [0x56e9c0]
movd xmm3, dword [ebx]
movdqa xmm2, xmmword [0x56e9d0]
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 0x4b37cf
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 0x4b37b0
jmp 0x4b37cf
mov ecx, ebx
mov esi, edx
call fcn.00469df0
jmp 0x4b37cf
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 0x4b3874
test edx, edx
je 0x4b387d
cmp edx, 8
mov edx, 0
mov eax, 0
jb 0x4b3856
mov eax, dword [ebp + 8]
movdqa xmm1, xmmword [0x56e9c0]
movdqa xmm2, xmmword [0x56e9d0]
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 0x4b387f
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 0x4b3860
jmp 0x4b387f
call fcn.00469df0
mov edx, eax
jmp 0x4b387f
xor edx, edx
mov ecx, dword [esp + 0x20]
lea eax, [ebx + esi]
mov edi, dword [ebp + 8]
movsd xmm0, qword [0x56e9e0]
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 0x4b3e37
test ecx, ecx
xorpd xmm4, xmm4
je 0x4b3e3b
test edx, edx
je 0x4b3e3b
cmp dword [esp + 0x20], 1
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], esi
jne 0x4b3a2f
cmp edx, 1
jne 0x4b3a2f
mov eax, edi
mov ecx, ebx
jmp 0x4b38ed
inc eax
cmp ebx, edx
mov ebx, dword [esp + 0xc]
jne 0x4b3de1
cmp ecx, dword [esp + 0x50]
je 0x4b3de7
movzx edx, byte [ecx]
test dl, dl
js 0x4b3910
inc ecx
cmp eax, dword [esp + 0x2c]
jne 0x4b39a0
jmp 0x4b3de1
movzx ebx, byte [ecx + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4b3967
movzx edi, byte [ecx + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4b3980
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 0x4b3de7
add ecx, 4
cmp eax, dword [esp + 0x2c]
jne 0x4b39a0
jmp 0x4b3de1
shl esi, 6
add ecx, 2
or esi, ebx
mov ebx, dword [esp + 0xc]
mov edx, esi
cmp eax, dword [esp + 0x2c]
jne 0x4b39a0
jmp 0x4b3de1
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 0x4b3de1
nop dword [eax + eax]
movzx ebx, byte [eax]
test bl, bl
jns 0x4b38e0
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 0x4b39fd
movzx edi, byte [ecx + 2]
shl eax, 6
and edi, 0x3f
or edi, eax
cmp bl, 0xf0
jb 0x4b3a0b
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 0x4b400f
mov edi, dword [ebp + 8]
mov eax, ecx
add eax, 4
jmp 0x4b3a1a
shl esi, 6
add ecx, 2
or esi, eax
mov eax, ecx
mov ebx, esi
jmp 0x4b3a1a
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 0x4b38ed
jmp 0x4b3de1
mov eax, dword [esp + 0x20]
mov ecx, edx
cmp eax, edx
cmova ecx, eax
test edx, edx
mov dword [esp + 0x28], ecx
js 0x4b4035
movzx eax, byte [0x592110]
mov eax, dword [0x5920d8]
test eax, eax
jne 0x4b3a6c
mov esi, edx
call sub.KERNEL32.dll_GetProcessHeap
test eax, eax
je 0x4b4029
mov edx, esi
mov dword [0x5920d8], eax
push edx
push 0
push eax
mov esi, edx
call sub.KERNEL32.dll_HeapAlloc
test eax, eax
je 0x4b4029
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 0x4b3ac0
mov byte [eax + edx], 0
mov edx, dword [esp + 0x5c]
inc edx
dec esi
mov dword [esp + 0x5c], edx
je 0x4b3ad9
cmp edx, dword [esp + 0x54]
jne 0x4b3ab0
lea ecx, [esp + 0x54]
call fcn.0042a810
mov eax, dword [esp + 0x58]
mov edx, dword [esp + 0x5c]
jmp 0x4b3ab0
mov eax, dword [esp + 0x64]
mov dword [esp + 0x6c], edx
mov edx, dword [esp + 0x58]
neg dword [esp + 0x28]
movsd xmm2, qword [0x56e9e0]
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 0x4b3d5d
movzx eax, byte [ebx]
test al, al
js 0x4b3b40
inc ebx
jmp 0x4b3bc0
movzx edi, byte [ebx + 1]
mov edx, eax
and eax, 0x1f
and edi, 0x3f
cmp dl, 0xdf
jbe 0x4b3b98
mov esi, ebx
shl edi, 6
add ebx, 3
movzx esi, byte [esi + 2]
and esi, 0x3f
or esi, edi
cmp dl, 0xf0
jb 0x4b3ba5
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 0x4b3d5d
add ebx, 4
jmp 0x4b3bc0
shl eax, 6
add ebx, 2
or eax, edi
mov edi, dword [ebp + 8]
jmp 0x4b3bc0
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 0x4b3c04
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 0x4b3b20
cmp dword [ebp + 0xc], 0
jne 0x4b3c1d
jmp 0x4b3d56
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 0x4b3d56
mov dword [esp + 0x24], ebx
xor ecx, ecx
mov ebx, edi
mov dword [esp + 0x1c], eax
jmp 0x4b3c3f
mov ebx, dword [esp + 0x18]
inc ecx
cmp ebx, dword [esp + 0x2c]
je 0x4b3d52
movzx eax, byte [ebx]
test al, al
js 0x4b3c60
inc ebx
mov dword [esp + 0x18], ebx
mov ebx, dword [esp + 0x24]
cmp ebx, ecx
jbe 0x4b3d00
jmp 0x4b3c30
movzx esi, byte [ebx + 1]
mov edi, eax
and edi, 0x1f
and esi, 0x3f
cmp al, 0xdf
jbe 0x4b3cce
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 0x4b3cde
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 0x4b3d4f
add dword [esp + 0x18], 4
mov edi, dword [ebp + 8]
cmp ebx, ecx
jbe 0x4b3d00
jmp 0x4b3c30
shl edi, 6
add ebx, 2
or edi, esi
mov dword [esp + 0x18], ebx
mov eax, edi
jmp 0x4b3ced
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 0x4b3c30
cmp ecx, edx
ja 0x4b3c30
cmp dword [esp + 0x78], eax
jne 0x4b3c30
cmp ecx, dword [esp + 0x6c]
jae 0x4b401b
mov eax, dword [esp + 0x4c]
cmp byte [eax + ecx], 0
jne 0x4b3c30
mov eax, dword [esp + 0x4c]
cmp ecx, dword [esp + 0x60]
mov byte [eax + ecx], 1
jae 0x4b3d3c
addsd xmm0, xmm2
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x60], ecx
addsd xmm1, xmm2
mov ecx, eax
jmp 0x4b3b20
mov edi, dword [ebp + 8]
mov eax, dword [esp + 0x1c]
mov ecx, eax
jmp 0x4b3b20
xorpd xmm4, xmm4
ucomisd xmm1, xmm4
jne 0x4b3d69
jnp 0x4b3db9
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 [0x56e9f0]
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 [0x56ea00]
cmp dword [esp + 0x54], 0
mov ebx, dword [esp + 0xc]
je 0x4b3de1
push dword [esp + 0x4c]
push 0
push dword [0x5920d8]
movapd xmmword [esp + 0x3c], xmm4
call sub.KERNEL32.dll_HeapFree
movapd xmm4, xmmword [esp + 0x30]
mov esi, dword [esp + 0x10]
jmp 0x4b3e3b
cmp eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x10]
je 0x4b3e37
movzx ecx, byte [eax]
test cl, cl
jns 0x4b3e3b
cmp cl, 0xe0
jb 0x4b3e3b
cmp cl, 0xf0
jb 0x4b3e3b
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 0x4b3e3b
movapd xmm4, xmm0
xor eax, eax
test esi, esi
je 0x4b3fcf
nop word cs:[eax + eax]
nop
movzx ecx, byte [ebx]
test cl, cl
js 0x4b3e70
inc ebx
cmp edi, dword [esp + 0x2c]
jne 0x4b3f00
jmp 0x4b3fcf
mov dword [esp + 0x30], edi
movzx edi, byte [ebx + 1]
mov edx, ecx
and edx, 0x1f
and edi, 0x3f
cmp cl, 0xdf
jbe 0x4b3ec8
movzx esi, byte [ebx + 2]
shl edi, 6
and esi, 0x3f
or esi, edi
cmp cl, 0xf0
jb 0x4b3ee1
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 0x4b3fcf
add ebx, 4
cmp edi, dword [esp + 0x2c]
jne 0x4b3f00
jmp 0x4b3fcf
shl edx, 6
add ebx, 2
or edx, edi
mov edi, dword [esp + 0x30]
mov ecx, edx
cmp edi, dword [esp + 0x2c]
jne 0x4b3f00
jmp 0x4b3fcf
mov edi, dword [esp + 0x30]
shl edx, 0xc
add ebx, 3
or esi, edx
mov ecx, esi
cmp edi, dword [esp + 0x2c]
je 0x4b3fcf
nop dword [eax]
movzx edx, byte [edi]
test dl, dl
js 0x4b3f20
inc edi
cmp ecx, 0x110000
jne 0x4b3fc0
jmp 0x4b3fcf
mov dword [esp + 0xc], ebx
movzx ebx, byte [edi + 1]
mov esi, edx
and esi, 0x1f
and ebx, 0x3f
cmp dl, 0xdf
jbe 0x4b3f7f
mov dword [esp + 0x30], edi
movzx edi, byte [edi + 2]
shl ebx, 6
and edi, 0x3f
or edi, ebx
cmp dl, 0xf0
jb 0x4b3f97
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 0x4b3fcf
mov edi, dword [esp + 0x30]
add edi, 4
cmp ecx, 0x110000
jne 0x4b3fc0
jmp 0x4b3fcf
shl esi, 6
add edi, 2
or esi, ebx
mov ebx, dword [esp + 0xc]
mov edx, esi
cmp ecx, 0x110000
jne 0x4b3fc0
jmp 0x4b3fcf
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 0x4b3fcf
nop word cs:[eax + eax]
nop dword [eax]
cmp ecx, edx
jne 0x4b3fcf
inc eax
cmp ebx, dword [esp + 0x50]
jne 0x4b3e50
movd xmm1, eax
movsd xmm2, qword [0x56e9e0]
por xmm1, xmmword [0x56e9f0]
movapd xmm0, xmm2
subsd xmm1, qword [0x56ea08]
subsd xmm0, xmm4
mulsd xmm1, qword [0x56ea10]
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 0x4b3de1
mov edx, dword [esp + 0x6c]
push 0x57f124
call fcn.004699c0
mov ecx, 1
mov edx, esi
call fcn.00429f60
call fcn.00429f20
nop word [eax + eax]