Function at 0x4df780
Capabilities:
Encode data using xor
Resolve function by parsing pe exports

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x300
mov edi, dword [ebp + 8]
mov esi, edx
mov dword [esp + 0x20], ecx
lea eax, [esp + 0x30]
push 0x2c8
push 0
push eax
call sub.api_ms_win_crt_string_l1_1_0.dll_memset
add esp, 0xc
test edi, edi
mov dword [esp + 0x24], edi
je 0x4dfd1c
mov ebx, dword [esp + 0x20]
mov eax, dword [ebx]
mov ecx, dword [ebx + 0x24]
movdqu xmm2, xmmword [ebx + 8]
movdqu xmm1, xmmword [ebx + 0x28]
mov edx, dword [ebx + 0x20]
mov edi, dword [ebx + 0x3c]
mov dword [esp], eax
mov eax, dword [ebx + 4]
mov dword [esp + 8], ecx
mov dword [esp + 0xc], eax
mov eax, dword [ebx + 0x1c]
mov dword [esp + 4], eax
mov eax, dword [ebx + 0x18]
mov ebx, dword [ebx + 0x38]
jmp 0x4df91b
mov eax, dword [esp + 0x20]
mov edx, dword [esp + 0x18]
movd xmm1, dword [esp + 0x10]
movd xmm0, dword [esp + 8]
add edi, dword [eax]
punpckldq xmm1, xmm0
adc ecx, dword [eax + 4]
mov dword [eax], edi
mov dword [esp], edi
mov dword [eax + 4], ecx
mov dword [esp + 0xc], ecx
mov ecx, dword [eax + 8]
mov esi, dword [eax + 0xc]
add ecx, dword [edx]
adc esi, dword [edx + 4]
mov dword [eax + 8], ecx
mov dword [esp + 4], ecx
mov dword [eax + 0xc], esi
mov dword [esp + 0x14], esi
mov esi, dword [eax + 0x10]
mov ebx, dword [eax + 0x14]
movd xmm4, dword [esp + 0x14]
add esi, dword [edx + 8]
adc ebx, dword [edx + 0xc]
mov dword [eax + 0x10], esi
movd xmm6, esi
mov esi, dword [esp + 0x28]
mov dword [eax + 0x14], ebx
movd xmm7, ebx
movd xmm0, dword [edx + 0x10]
movd xmm3, dword [edx + 0x14]
movdqu xmm2, xmmword [eax + 0x18]
punpckldq xmm6, xmm7
punpckldq xmm0, xmm3
punpcklqdq xmm0, xmm1
paddq xmm0, xmm2
movd xmm2, dword [esp + 4]
movdqu xmmword [eax + 0x18], xmm0
pshufd xmm5, xmm0, 0xe5
mov ecx, dword [eax + 0x28]
mov edi, dword [eax + 0x2c]
movd dword [esp + 4], xmm5
pshufd xmm5, xmm0, 0xe7
movd dword [esp + 8], xmm5
punpckldq xmm2, xmm4
punpcklqdq xmm2, xmm6
add ecx, dword [edx + 0x20]
adc edi, dword [edx + 0x24]
mov dword [eax + 0x28], ecx
movd xmm1, ecx
mov dword [eax + 0x2c], edi
movd xmm3, edi
mov edi, dword [eax + 0x30]
mov ecx, dword [eax + 0x34]
punpckldq xmm1, xmm3
add edi, dword [edx + 0x28]
adc ecx, dword [edx + 0x2c]
mov dword [eax + 0x30], edi
movd xmm3, edi
mov dword [eax + 0x34], ecx
movd xmm5, ecx
mov ebx, dword [eax + 0x38]
mov edi, dword [eax + 0x3c]
punpckldq xmm3, xmm5
punpcklqdq xmm1, xmm3
add ebx, dword [edx + 0x30]
adc edi, dword [edx + 0x34]
sub esi, 0xffffff80
cmp dword [esp + 0x24], 0
mov dword [eax + 0x38], ebx
mov dword [eax + 0x3c], edi
movd eax, xmm0
pshufd xmm0, xmm0, 0x4e
movd edx, xmm0
je 0x4dfd1c
movdqu xmmword [esp + 0x2b8], xmm2
mov dword [esp + 0x2c8], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x28], esi
mov esi, dword [esp + 0xc]
mov ecx, 0xffffff80
mov dword [esp + 0x2cc], eax
movdqu xmmword [esp + 0x2d8], xmm1
mov dword [esp + 0x2e8], ebx
mov dword [esp + 0x2ec], edi
mov edi, dword [esp]
mov ebx, dword [esp + 8]
lea eax, [esp + 0x2b0]
mov dword [esp + 0x18], eax
nop dword [eax]
mov eax, ebx
mov dword [esp + 0xc], esi
mov esi, edx
mov dword [esp], edi
mov edi, ebx
mov dword [esp + 0x14], ecx
shld esi, ebx, 0xe
shld eax, edx, 0x17
shld edi, edx, 0xe
xor eax, esi
mov esi, edx
shld esi, ebx, 0x12
xor eax, esi
mov dword [esp + 4], eax
mov eax, edx
shld eax, ebx, 0x17
xor eax, edi
mov edi, ebx
shld edi, edx, 0x12
xor eax, edi
mov dword [esp + 8], eax
mov eax, ecx
mov ecx, dword [esp + 0x28]
mov edi, dword [ecx + eax + 0x84]
mov esi, dword [ecx + eax + 0x80]
mov ecx, dword [esp + 0x18]
mov eax, dword [esp + 0xc]
mov dword [ecx + 4], eax
mov eax, dword [esp]
bswap esi
bswap edi
mov dword [esp + 0x10], esi
mov dword [ecx], eax
mov dword [ecx + 0x24], ebx
mov dword [ecx + 0x20], edx
mov dword [ecx + 0x44], esi
mov dword [ecx + 0x40], edi
mov esi, dword [esp + 8]
mov eax, dword [ecx + 0x28]
and eax, edx
not edx
and edx, dword [ecx + 0x30]
or edx, eax
mov eax, dword [ecx + 0x2c]
and eax, ebx
not ebx
and ebx, dword [ecx + 0x34]
or ebx, eax
add esi, edi
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x14]
adc edi, dword [esp + 0x10]
add esi, dword [ecx + 0x38]
adc edi, dword [ecx + 0x3c]
add esi, dword [eax + 0x536fc0]
adc edi, dword [eax + 0x536fc4]
add esi, edx
mov edx, dword [ecx + 0x18]
mov eax, dword [esp]
mov dword [esp + 8], esi
adc edi, ebx
add edx, esi
mov ebx, dword [ecx + 0x1c]
mov esi, dword [esp + 0xc]
mov dword [esp + 4], edi
adc ebx, edi
mov edi, esi
shld edi, eax, 0x1e
mov dword [esp + 0x10], edi
mov edi, esi
shld edi, eax, 0x19
mov eax, dword [esp]
xor edi, dword [esp + 0x10]
shld eax, esi, 4
xor edi, eax
mov eax, dword [esp]
mov dword [esp + 0x10], edi
mov edi, eax
shld eax, esi, 0x19
shld edi, esi, 0x1e
mov dword [esp + 0x1c], edi
mov edi, esi
mov esi, dword [esp]
xor eax, dword [esp + 0x1c]
shld edi, esi, 4
mov esi, dword [esp + 4]
xor eax, edi
mov edi, dword [ecx + 0x10]
add eax, dword [esp + 8]
mov dword [esp + 4], edi
adc dword [esp + 0x10], esi
mov esi, dword [ecx + 8]
xor edi, esi
mov dword [esp + 0x1c], esi
mov esi, dword [ecx + 0x14]
and edi, dword [esp]
mov dword [esp], esi
mov dword [esp + 8], edi
mov edi, dword [ecx + 0xc]
xor dword [esp], edi
mov dword [esp + 0x2c], edi
mov edi, dword [esp]
and esi, dword [esp + 0x2c]
and edi, dword [esp + 0xc]
mov dword [esp], edi
mov edi, dword [esp + 0x1c]
xor esi, dword [esp]
and dword [esp + 4], edi
mov edi, dword [esp + 8]
xor dword [esp + 4], edi
mov edi, dword [esp + 4]
add edi, eax
adc esi, dword [esp + 0x10]
add ecx, 0xfffffff8
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x14]
add ecx, 8
jne 0x4df970
mov ecx, dword [esp + 0x18]
dec dword [esp + 0x24]
mov dword [esp + 0xc], esi
mov dword [esp], edi
mov esi, ebx
mov edi, edx
mov dword [esp + 4], 0xfffffe08
nop
movq xmm1, qword [ecx + 0x50]
movq xmm0, qword [ecx + 0xb8]
mov eax, dword [ecx + 0x78]
mov ebx, ecx
punpcklqdq xmm0, xmm1
add eax, dword [ecx + 0xc0]
mov ecx, dword [ecx + 0x7c]
movdqa xmm1, xmm0
movdqa xmm2, xmm0
movdqa xmm3, xmm0
movdqa xmm5, xmm0
movdqa xmm4, xmm0
psrlq xmm1, 1
psrlq xmm2, 0x13
psllq xmm3, 0x2d
psrlq xmm5, 0x3d
psllq xmm4, 3
movsd xmm2, xmm1
movdqa xmm1, xmm0
psllq xmm1, 0x3f
adc ecx, dword [ebx + 0xc4]
movsd xmm3, xmm1
movdqa xmm1, xmm0
psrlq xmm1, 8
orpd xmm3, xmm2
movsd xmm5, xmm1
movdqa xmm1, xmm0
psllq xmm1, 0x38
movsd xmm4, xmm1
movdqa xmm1, xmm0
psrlq xmm0, 6
psrlq xmm1, 7
orpd xmm4, xmm5
movsd xmm0, xmm1
xorpd xmm0, xmm3
xorpd xmm0, xmm4
movd edx, xmm0
pshufd xmm1, xmm0, 0xe5
add edx, eax
movd eax, xmm1
pshufd xmm1, xmm0, 0x4e
pshufd xmm0, xmm0, 0xe7
adc eax, ecx
movd ecx, xmm1
add ecx, edx
mov edx, edi
mov dword [esp + 0x14], ecx
movd ecx, xmm0
adc ecx, eax
mov eax, edi
mov dword [esp + 8], ecx
mov ecx, esi
shld eax, esi, 0xe
shld esi, edi, 0x17
xor esi, eax
mov eax, edi
shld edx, ecx, 0x17
shld eax, ecx, 0x12
xor esi, eax
mov eax, ecx
shld eax, edi, 0xe
xor edx, eax
mov eax, ecx
shld eax, edi, 0x12
xor edx, eax
mov eax, ebx
mov ebx, dword [esp]
mov dword [eax], ebx
mov ebx, dword [esp + 0xc]
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x14]
mov dword [eax + 0x20], edi
mov dword [eax + 0x24], ecx
mov dword [eax + 0x40], ebx
mov ebx, dword [esp + 8]
mov dword [eax + 0x44], ebx
mov ebx, eax
mov eax, dword [eax + 0x28]
mov dword [esp + 0x18], ebx
and eax, edi
not edi
and edi, dword [ebx + 0x30]
or edi, eax
mov eax, dword [ebx + 0x2c]
and eax, ecx
not ecx
and ecx, dword [ebx + 0x34]
or ecx, eax
add edx, dword [esp + 0x14]
mov eax, dword [esp + 4]
adc esi, dword [esp + 8]
add edx, dword [ebx + 0x38]
adc esi, dword [ebx + 0x3c]
add edx, dword [eax + 0x5371b8]
adc esi, dword [eax + 0x5371bc]
mov eax, dword [ebx + 0x18]
add edx, edi
mov edi, dword [esp + 0xc]
adc esi, ecx
add eax, edx
mov ecx, dword [esp]
mov dword [esp + 0x10], eax
mov eax, dword [ebx + 0x1c]
mov ebx, edi
adc eax, esi
shld ebx, ecx, 0x19
mov dword [esp + 8], eax
mov eax, edi
shld eax, ecx, 0x1e
xor ebx, eax
mov eax, ecx
shld eax, edi, 4
xor ebx, eax
mov eax, ecx
mov ecx, dword [esp]
shld eax, edi, 0x1e
shld ecx, edi, 0x19
xor ecx, eax
mov eax, edi
mov edi, dword [esp]
shld eax, edi, 4
xor ecx, eax
mov eax, dword [esp + 0x18]
add ecx, edx
adc ebx, esi
mov edi, dword [eax + 0x10]
mov edx, dword [eax + 8]
mov esi, edi
mov dword [esp + 0x14], edx
xor esi, edx
mov edx, dword [eax + 0xc]
mov eax, dword [eax + 0x14]
and edi, dword [esp + 0x14]
and esi, dword [esp]
mov dword [esp], edx
mov edx, eax
xor edx, dword [esp]
and eax, dword [esp]
xor edi, esi
and edx, dword [esp + 0xc]
xor eax, edx
add edi, ecx
mov ecx, eax
adc ecx, ebx
cmp dword [esp + 4], 0
je 0x4df800
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0x18]
mov dword [esp], edi
add dword [esp + 4], 8
mov esi, dword [esp + 8]
mov edi, dword [esp + 0x10]
add ecx, 0xfffffff8
jmp 0x4dfb10
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret