Function at 0x430ed0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x70
mov eax, dword [0x46c004]
xor eax, ebp
mov dword [ebp - 4], eax
mov eax, dword [ebp + 0xc]
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
push edi
mov dword [ebp - 0x68], eax
mov eax, dword [ebp + 0x10]
push 0
mov dword [ebp - 0x64], edx
mov dword [ebp - 0x70], edi
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x4c], 0
call dword [sym.imp.KERNEL32.dll_GetProcessHeap]
push eax
call dword [sym.imp.KERNEL32.dll_HeapAlloc]
mov esi, 0x20
mov ebx, eax
cmp edi, esi
mov dword [ebp - 0x58], ebx
lea eax, [ebp - 0x48]
cmovb esi, edi
push esi
push dword [ebp - 0x64]
mov dword [ebp - 0x54], esi
push eax
call fcn.00456380
add esp, 0xc
cmp esi, 0x20
jae 0x430fc6
add esi, 0xfffffff0
lea eax, [ebp - 0x48]
add eax, esi
push 0x46dbc0
push eax
push eax
call fcn.0043c140
add esp, 0xc
xor ecx, ecx
test esi, esi
je 0x430f9d
cmp esi, 0x20
jb 0x430f89
mov eax, esi
and eax, 0xffffffe0
movups xmm1, xmmword [ebp + ecx - 0x38]
movups xmm0, xmmword [ebp + ecx - 0x48]
pxor xmm0, xmm1
movups xmmword [ebp + ecx - 0x48], xmm0
movups xmm0, xmmword [ebp + ecx - 0x28]
pxor xmm0, xmm1
movups xmmword [ebp + ecx - 0x38], xmm0
add ecx, 0x20
cmp ecx, eax
jb 0x430f61
cmp ecx, esi
jae 0x430f9d
nop dword [eax]
mov al, byte [ebp + ecx - 0x38]
xor byte [ebp + ecx - 0x48], al
inc ecx
cmp ecx, esi
jb 0x430f90
push esi
lea eax, [ebp - 0x48]
push eax
push ebx
call fcn.00456380
mov edx, dword [ebp - 0x68]
add esp, 0xc
mov eax, dword [ebp - 0x6c]
mov dword [edx], ebx
pop edi
mov dword [eax], esi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043de43
mov esp, ebp
pop ebp
ret
lea ebx, [ebp - 0x48]
mov dword [ebp - 0x5c], 0x10
lea eax, [ebp - 0x38]
mov dword [ebp - 0x50], ebx
mov dword [ebp - 0x60], eax
lea edi, [ebp - 0x28]
nop dword [eax]
mov eax, dword [ebp - 0x70]
sub eax, esi
mov esi, 0x10
cmp eax, esi
cmovb esi, eax
mov eax, dword [ebp - 0x54]
add eax, dword [ebp - 0x64]
push esi
push eax
push edi
call fcn.00456380
add dword [ebp - 0x54], esi
lea eax, [ebp - 0x18]
push 0x46dbc0
push eax
push dword [ebp - 0x60]
call fcn.0043c140
add esp, 0x18
test esi, esi
je 0x431122
cmp esi, 0x10
je 0x431122
xor eax, eax
mov dword [ebp - 0x5c], esi
test esi, esi
je 0x43109f
cmp esi, 0x20
jb 0x431083
lea ecx, [edi - 1]
add ecx, esi
lea ebx, [ebp - 0x18]
lea edx, [ebp + esi - 0x19]
cmp ebx, ecx
ja 0x431047
cmp edx, edi
jae 0x431083
mov edx, esi
lea ecx, [ebp - 0x18]
mov ebx, edi
and edx, 0xffffffe0
sub ebx, ecx
movups xmm0, xmmword [ebp + eax - 0x18]
lea ecx, [ebx + eax]
movups xmm1, xmmword [ebp + ecx - 0x18]
pxor xmm1, xmm0
movups xmmword [ebp + eax - 0x18], xmm1
movups xmm0, xmmword [ebp + eax - 8]
movups xmm1, xmmword [edi + eax + 0x10]
pxor xmm1, xmm0
movups xmmword [ebp + eax - 8], xmm1
add eax, 0x20
cmp eax, edx
jb 0x431053
cmp eax, esi
jae 0x43109f
mov ebx, edi
lea ecx, [ebp - 0x18]
sub ebx, ecx
nop
lea edx, [ebp - 0x18]
add edx, eax
inc eax
mov cl, byte [ebx + edx]
xor byte [edx], cl
cmp eax, esi
jb 0x431090
cmp esi, 0x10
jae 0x4310be
mov eax, 0x10
lea ecx, [ebp - 0x18]
sub eax, esi
lea edx, [edi + esi]
push eax
add ecx, esi
push ecx
push edx
call fcn.00456380
add esp, 0xc
push 0x46dbc0
push edi
push edi
call fcn.0043c140
mov ebx, dword [ebp - 0x50]
lea ecx, [edi + 0xf]
add esp, 0xc
lea eax, [ebx + 0xf]
cmp edi, eax
ja 0x431100
cmp ecx, ebx
jb 0x431100
mov ecx, edi
sub ebx, edi
mov edx, 0x10
mov al, byte [ebx + ecx]
lea ecx, [ecx + 1]
xor byte [ecx - 1], al
sub edx, 1
jne 0x4310e7
mov ebx, dword [ebp - 0x50]
jmp 0x43110d
movups xmm1, xmmword [ebx]
movups xmm0, xmmword [edi]
pxor xmm1, xmm0
movups xmmword [edi], xmm1
mov eax, dword [ebp - 0x4c]
mov ecx, dword [ebp - 0x58]
movups xmm0, xmmword [edi]
movups xmmword [ecx + eax], xmm0
add eax, 0x10
mov dword [ebp - 0x4c], eax
jmp 0x43116a
lea eax, [ebx + 0xf]
xor edx, edx
lea ecx, [ebp - 0x18]
cmp ecx, eax
ja 0x431155
lea eax, [ebp - 9]
cmp eax, ebx
jb 0x431155
mov eax, ecx
sub ebx, eax
nop dword [eax]
lea ecx, [ebp - 0x18]
add ecx, edx
inc edx
mov al, byte [ecx + ebx]
xor byte [ecx], al
cmp edx, 0x10
jb 0x431140
mov ebx, dword [ebp - 0x50]
jmp 0x431164
movups xmm0, xmmword [ebp - 0x18]
movups xmm1, xmmword [ebx]
pxor xmm1, xmm0
movups xmmword [ebp - 0x18], xmm1
mov ecx, dword [ebp - 0x58]
mov eax, dword [ebp - 0x4c]
push dword [ebp - 0x5c]
lea edx, [ebp - 0x18]
add eax, ecx
push edx
push eax
call fcn.00456380
mov ecx, dword [ebp - 0x4c]
mov eax, ebx
add ecx, dword [ebp - 0x5c]
add esp, 0xc
mov ebx, dword [ebp - 0x60]
cmp esi, 0x10
mov esi, dword [ebp - 0x54]
mov dword [ebp - 0x60], edi
mov edi, eax
mov dword [ebp - 0x4c], ecx
mov dword [ebp - 0x50], ebx
je 0x430fe0
mov edx, dword [ebp - 0x68]
mov eax, dword [ebp - 0x58]
pop edi
pop esi
mov dword [edx], eax
mov eax, dword [ebp - 0x6c]
pop ebx
mov dword [eax], ecx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0043de43
mov esp, ebp
pop ebp
ret