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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0xd0
movdqu xmm0, xmmword [edx]
mov eax, dword [ebp + 8]
mov dword [esp + 0x1c], edx
lea edi, [esp + 0x48]
mov dword [esp + 0x38], ecx
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0
mov dword [esp + 0x80], 0
mov ecx, edi
pshufd xmm1, xmm0, 0x44
pshufd xmm2, xmm0, 0xee
mov edx, dword [eax]
movdqu xmmword [esp + 0x48], xmm0
pxor xmm1, xmmword [0x606bf0]
pxor xmm2, xmmword [0x606c00]
movdqu xmmword [esp + 0x58], xmm1
movdqu xmmword [esp + 0x68], xmm2
mov dword [esp + 0x84], 0
push dword [eax + 8]
call fcn.0041a840
add esp, 4
mov byte [esp + 0xa4], 0xff
lea edx, [esp + 0xa4]
mov ecx, edi
push 1
call fcn.0041a840
add esp, 4
mov edx, dword [esp + 0x80]
mov ecx, dword [esp + 0x74]
mov edi, dword [esp + 0x78]
mov esi, dword [esp + 0x70]
mov eax, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
pcmpeqd xmm3, xmm3
shl edx, 0x18
xor esi, edi
mov dword [esp + 0x18], edi
or edx, dword [esp + 0x7c]
mov dword [esp + 0x90], edx
xor ecx, edx
mov edx, dword [esp + 0x58]
add edx, eax
mov dword [esp + 0xc], edx
mov edx, eax
mov eax, dword [esp + 0x5c]
mov edi, edx
adc eax, ebx
shld edi, ebx, 0xd
shld ebx, edx, 0xd
mov edx, dword [esp + 0x64]
mov dword [esp + 0x20], eax
xor ebx, eax
mov eax, dword [esp + 0x60]
xor edi, dword [esp + 0xc]
add eax, esi
mov dword [esp + 0x14], eax
mov eax, esi
adc edx, ecx
shrd esi, ecx, 0x10
shld eax, ecx, 0x10
mov dword [esp + 0x10], edx
xor esi, edx
mov edx, dword [esp + 0xc]
xor eax, dword [esp + 0x14]
add dword [esp + 0x20], eax
mov ecx, eax
adc edx, esi
shrd eax, esi, 0xb
shld ecx, esi, 0x15
mov esi, edi
mov dword [esp + 0xc], edx
xor eax, edx
mov edx, dword [esp + 0x20]
xor ecx, edx
add dword [esp + 0x14], edi
adc dword [esp + 0x10], ebx
shld esi, ebx, 0x11
shrd edi, ebx, 0xf
mov ebx, dword [esp + 0xc]
xor edx, dword [esp + 0x18]
xor esi, dword [esp + 0x14]
xor ebx, dword [esp + 0x90]
mov dword [esp + 0xc], ebx
mov ebx, dword [esp + 0x10]
xor edi, ebx
xor ebx, 0xff
add edx, esi
mov dword [esp + 0x10], ebx
mov ebx, dword [esp + 0xc]
mov dword [esp + 0x20], edx
mov edx, esi
adc ebx, edi
shld edx, edi, 0xd
shrd esi, edi, 0x13
mov edi, ecx
mov dword [esp + 0xc], ebx
xor esi, ebx
xor edx, dword [esp + 0x20]
add dword [esp + 0x10], ecx
mov ebx, dword [esp + 0x14]
adc ebx, eax
shld edi, eax, 0x10
shrd ecx, eax, 0x10
xor edi, dword [esp + 0x10]
xor ecx, ebx
mov dword [esp + 0x14], ebx
mov ebx, dword [esp + 0x20]
add dword [esp + 0xc], edi
mov eax, edi
adc ebx, ecx
shld eax, ecx, 0x15
shrd edi, ecx, 0xb
mov ecx, edx
mov dword [esp + 0x20], ebx
xor edi, ebx
xor eax, dword [esp + 0xc]
add dword [esp + 0x10], edx
mov ebx, dword [esp + 0x14]
adc ebx, esi
shld ecx, esi, 0x11
shrd edx, esi, 0xf
mov esi, dword [esp + 0xc]
xor ecx, dword [esp + 0x10]
xor edx, ebx
mov dword [esp + 0x14], ebx
add esi, ecx
mov ebx, ecx
adc dword [esp + 0x20], edx
shld ebx, edx, 0xd
shrd ecx, edx, 0x13
mov dword [esp + 0xc], esi
mov edx, eax
xor ebx, esi
xor ecx, dword [esp + 0x20]
add dword [esp + 0x14], eax
mov esi, dword [esp + 0x10]
adc esi, edi
shrd eax, edi, 0x10
shld edx, edi, 0x10
mov dword [esp + 0x10], esi
xor eax, esi
mov esi, dword [esp + 0x14]
xor edx, esi
add dword [esp + 0x20], edx
mov edi, edx
adc dword [esp + 0xc], eax
shld edi, eax, 0x15
shrd edx, eax, 0xb
mov eax, dword [esp + 0x10]
xor edx, dword [esp + 0xc]
xor edi, dword [esp + 0x20]
add esi, ebx
mov dword [esp + 0x14], esi
mov esi, ebx
adc eax, ecx
shld esi, ecx, 0x11
shrd ebx, ecx, 0xf
mov ecx, dword [esp + 0x20]
xor esi, dword [esp + 0x14]
xor ebx, eax
mov dword [esp + 0x10], eax
add ecx, esi
mov eax, esi
adc dword [esp + 0xc], ebx
shld eax, ebx, 0xd
shrd esi, ebx, 0x13
mov ebx, dword [esp + 0x14]
xor eax, ecx
xor esi, dword [esp + 0xc]
add dword [esp + 0x10], edi
mov ecx, edi
adc ebx, edx
shrd edi, edx, 0x10
shld ecx, edx, 0x10
mov edx, dword [esp + 0x10]
xor edi, ebx
xor ecx, edx
shld ecx, edi, 0x15
add edx, eax
adc ebx, esi
shrd esi, eax, 0xf
xor esi, ecx
xor esi, ebx
mov ebx, dword [esp + 0x1c]
xor esi, edx
mov eax, esi
mov dword [esp + 0x34], esi
shr eax, 0x19
mov edi, dword [ebx + 0x10]
mov ecx, dword [ebx + 0x14]
mov edx, ebx
movd xmm0, eax
mov dword [esp + 0x40], eax
punpcklbw xmm0, xmm0
lea eax, [edx + 0x10]
pshuflw xmm0, xmm0, 0
mov dword [esp + 0x3c], eax
pshufd xmm2, xmm0, 0
mov ebx, edi
movdqa xmm0, xmm2
mov dword [esp + 0x10], edi
xor edi, edi
mov dword [esp + 0xc], ecx
movdqa xmmword [esp + 0x90], xmm2
and ebx, esi
movdqu xmm1, xmmword [ecx + ebx]
mov dword [esp + 0x18], ebx
pcmpeqb xmm0, xmm1
movdqa xmmword [esp + 0xb0], xmm1
pmovmskb esi, xmm0
test si, si
jne 0x4fb024
nop dword [eax]
pcmpeqb xmm1, xmm3
pmovmskb eax, xmm1
test eax, eax
jne 0x4fb154
lea ebx, [ebx + edi + 0x10]
mov eax, dword [esp + 0xc]
movdqa xmm0, xmm2
add edi, 0x10
and ebx, dword [esp + 0x10]
movdqu xmm1, xmmword [eax + ebx]
pcmpeqb xmm0, xmm1
pmovmskb esi, xmm0
test esi, esi
je 0x4faff0
mov eax, esi
mov edx, dword [esp + 0xc]
lea esi, [eax - 1]
and esi, eax
bsf ax, ax
movzx ecx, ax
add ecx, ebx
and ecx, dword [esp + 0x10]
mov eax, ecx
shl ecx, 2
neg eax
shl eax, 6
sub eax, ecx
mov ecx, dword [ebp + 8]
mov dword [esp + 0x14], eax
mov ecx, dword [ecx + 8]
cmp ecx, dword [edx + eax - 0x3c]
jne 0x4fafe7
mov edx, dword [esp + 0x14]
mov eax, dword [ebp + 8]
add edx, dword [esp + 0xc]
mov eax, dword [eax]
push ecx
mov dword [esp + 0x18], edx
push dword [edx - 0x44]
mov dword [esp + 0x4c], eax
push eax
movdqa xmmword [esp + 0x2c], xmm1
call sub.msvcrt.dll_memcmp
movdqa xmm1, xmmword [esp + 0x2c]
movdqa xmm2, xmmword [esp + 0x9c]
pcmpeqd xmm3, xmm3
add esp, 0xc
test eax, eax
jne 0x4fafe7
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x38]
mov edx, dword [esp + 0x44]
movsd xmm0, qword [ecx - 8]
movsd qword [eax + 0x30], xmm0
movsd xmm0, qword [ecx - 0x10]
movsd qword [eax + 0x28], xmm0
movsd xmm0, qword [ecx - 0x18]
movsd qword [eax + 0x20], xmm0
movsd xmm0, qword [ecx - 0x20]
movsd qword [eax + 0x18], xmm0
movsd xmm0, qword [ecx - 0x28]
movsd qword [eax + 0x10], xmm0
movsd xmm0, qword [ecx - 0x38]
movsd xmm1, qword [ecx - 0x30]
movsd qword [eax + 8], xmm1
movsd qword [eax], xmm0
mov eax, dword [ebp + 0xc]
movsd xmm0, qword [eax + 0x30]
movsd qword [ecx - 8], xmm0
movsd xmm0, qword [eax + 0x28]
movsd qword [ecx - 0x10], xmm0
movsd xmm0, qword [eax + 0x20]
movsd qword [ecx - 0x18], xmm0
movsd xmm0, qword [eax + 0x18]
movsd qword [ecx - 0x20], xmm0
movsd xmm0, qword [eax + 0x10]
movsd qword [ecx - 0x28], xmm0
movq xmm0, qword [eax]
movq xmm1, qword [eax + 8]
mov eax, dword [ebp + 8]
movq qword [ecx - 0x30], xmm1
movq qword [ecx - 0x38], xmm0
cmp dword [eax + 4], 0
je 0x4fb28e
push edx
push 0
push dword [0x6f1130]
call sub.KERNEL32.dll_HeapFree
jmp 0x4fb28e
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 8]
movsd xmm0, qword [ecx]
mov dword [esp + 0x50], eax
mov eax, dword [ebp + 0xc]
movsd qword [esp + 0x48], xmm0
movsd xmm1, qword [eax + 8]
movsd xmm2, qword [eax + 0x10]
movq xmm0, qword [eax]
movsd qword [esp + 0x5c], xmm1
movsd xmm1, qword [eax + 0x18]
movsd qword [esp + 0x64], xmm2
movsd xmm2, qword [eax + 0x20]
movq qword [esp + 0x54], xmm0
movsd qword [esp + 0x6c], xmm1
movsd xmm1, qword [eax + 0x28]
movsd qword [esp + 0x74], xmm2
movq xmm2, qword [eax + 0x30]
movsd qword [esp + 0x7c], xmm1
movdqa xmm1, xmmword [esp + 0xb0]
movq qword [esp + 0x84], xmm2
pmovmskb eax, xmm1
test eax, eax
je 0x4fb1d9
mov esi, dword [esp + 0x1c]
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x10]
jmp 0x4fb210
mov edi, dword [esp + 0x34]
mov ebx, dword [esp + 0x10]
mov esi, dword [esp + 0x18]
mov ecx, 0x10
nop word [eax + eax]
mov eax, dword [esp + 0xc]
add esi, ecx
add ecx, 0x10
and esi, ebx
movdqu xmm0, xmmword [eax + esi]
pmovmskb eax, xmm0
test eax, eax
je 0x4fb1f0
mov dword [esp + 0x18], esi
mov esi, dword [esp + 0x1c]
bsf ax, ax
mov ecx, dword [esp + 0xc]
movzx eax, ax
add eax, dword [esp + 0x18]
and eax, ebx
mov bl, byte [ecx + eax]
test bl, bl
js 0x4fb23e
mov ecx, dword [esp + 0xc]
movdqa xmm0, xmmword [ecx]
pmovmskb eax, xmm0
bsf ax, ax
movzx eax, ax
mov bl, byte [ecx + eax]
and bl, 1
cmp dword [esi + 0x18], 0
jne 0x4fb24b
test bl, bl
jne 0x4fb296
neg bl
mov edx, dword [esp + 0x40]
movsx ecx, bl
mov ebx, dword [esp + 0xc]
add dword [esi + 0x18], ecx
lea ecx, [eax - 0x10]
and ecx, dword [esp + 0x10]
mov byte [ebx + eax], dl
not eax
mov byte [ecx + ebx + 0x10], dl
mov ecx, eax
inc dword [esi + 0x1c]
lea esi, [esp + 0x48]
shl ecx, 6
lea edi, [ecx + eax*4]
mov ecx, 0x11
add edi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [esp + 0x38]
mov dword [eax + 0xc], 2
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
mov edx, dword [esp + 0x3c]
lea ecx, [esp + 0xa4]
push esi
call fcn.004a50f0
add esp, 4
mov eax, dword [esi + 0x10]
mov ecx, dword [esi + 0x14]
and edi, eax
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], ecx
movdqu xmm0, xmmword [ecx + edi]
pmovmskb eax, xmm0
test eax, eax
jne 0x4fb2e8
mov edx, dword [esp + 0x10]
mov ecx, 0x10
mov eax, dword [esp + 0xc]
add edi, ecx
add ecx, 0x10
and edi, edx
movdqu xmm0, xmmword [eax + edi]
pmovmskb eax, xmm0
test eax, eax
je 0x4fb2d0
bsf ax, ax
mov ecx, dword [esp + 0xc]
movzx eax, ax
add eax, edi
and eax, dword [esp + 0x10]
cmp byte [ecx + eax], 0
js 0x4fb24b
mov eax, dword [esp + 0xc]
movdqa xmm0, xmmword [eax]
pmovmskb eax, xmm0
bsf ax, ax
movzx eax, ax
jmp 0x4fb24b