Function at 0x43c3c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x1c
mov ecx, dword [esp + 0x3c]
mov dword [esp + 0x18], 0
test ecx, ecx
je 0x43c427
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
mov esi, dword [esp + 0x30]
lea edi, [esi + 0x158]
xorps xmm0, xmm0
movups xmmword [esi + 0x168], xmm0
movups xmmword [esi + 0x158], xmm0
mov dword [esi + 0x178], eax
movups xmmword [esi + 0x138], xmm0
cmp ecx, 0xc
jne 0x43c431
mov eax, dword [ebp + 8]
mov dword [edi + 8], eax
movsd xmm0, qword [ebp]
movsd qword [edi], xmm0
mov byte [esi + 0x167], 1
jmp 0x43c62d
mov eax, 0xffffffec
jmp 0x43c645
mov eax, ecx
shr eax, 0x1d
lea edx, [ecx*8]
bswap edx
mov dword [esp + 0xc], edx
bswap eax
mov dword [esp + 0x10], eax
mov dword [esp + 8], edi
jmp 0x43c46f
mov ecx, esi
mov edi, dword [esp + 8]
mov edx, edi
push edi
call fcn.0043c650
add esp, 4
add ebp, ebx
mov ecx, dword [esp + 0x14]
sub ecx, ebx
je 0x43c60c
cmp ecx, 0x10
mov ebx, 0x10
cmovb ebx, ecx
xor eax, eax
cmp ebx, 3
jbe 0x43c4d0
mov eax, dword [ebp]
xor dword [edi], eax
mov eax, 4
cmp ebx, 8
jb 0x43c4d0
mov eax, dword [ebp + 4]
xor dword [esi + 0x15c], eax
mov eax, 8
cmp ebx, 0xc
jb 0x43c4d0
mov eax, dword [ebp + 8]
xor dword [esi + 0x160], eax
mov eax, 0xc
cmp ecx, 0x10
jb 0x43c4d0
mov eax, dword [ebp + 0xc]
xor dword [esi + 0x164], eax
mov eax, 0x10
nop word cs:[eax + eax]
mov dword [esp + 0x14], ecx
mov ecx, ebx
mov dword [esp], eax
sub ecx, eax
jbe 0x43c450
cmp ecx, 8
jb 0x43c590
mov dword [esp + 4], ecx
mov ecx, dword [esp + 8]
mov eax, dword [esp]
lea edx, [ecx + eax]
lea edi, [eax + ebp]
lea eax, [ebx + ebp]
cmp edx, eax
jae 0x43c50d
lea eax, [ecx + ebx]
cmp edi, eax
jb 0x43c590
xor eax, eax
mov ecx, dword [esp + 4]
cmp ecx, 0x10
jb 0x43c54c
mov eax, ecx
and eax, 0xfffffff0
xor ecx, ecx
nop
movups xmm0, xmmword [edx + ecx]
movups xmm1, xmmword [edi + ecx]
xorps xmm1, xmm0
movups xmmword [edx + ecx], xmm1
add ecx, 0x10
cmp eax, ecx
jne 0x43c520
mov ecx, dword [esp + 4]
cmp ecx, eax
je 0x43c450
test cl, 8
jne 0x43c54c
add dword [esp], eax
jmp 0x43c590
and ecx, 0xfffffff8
add dword [esp], ecx
nop word cs:[eax + eax]
movsd xmm0, qword [edx + eax]
movsd xmm1, qword [edi + eax]
xorps xmm1, xmm0
movlps qword [edx + eax], xmm1
add eax, 8
cmp ecx, eax
jne 0x43c560
cmp dword [esp + 4], ecx
je 0x43c450
nop word cs:[eax + eax]
mov ecx, ebx
mov eax, dword [esp]
sub ecx, eax
and ecx, 3
mov edi, dword [esp + 8]
je 0x43c5bc
mov eax, dword [esp]
nop word cs:[eax + eax]
movzx edx, byte [ebp + eax]
xor byte [edi + eax], dl
inc eax
dec ecx
jne 0x43c5b0
mov ecx, dword [esp]
not ecx
add ecx, ebx
cmp ecx, 3
jb 0x43c450
nop dword [eax]
movzx ecx, byte [ebp + eax]
xor byte [esi + eax + 0x158], cl
movzx ecx, byte [ebp + eax + 1]
xor byte [esi + eax + 0x159], cl
movzx ecx, byte [ebp + eax + 2]
xor byte [esi + eax + 0x15a], cl
movzx ecx, byte [ebp + eax + 3]
xor byte [esi + eax + 0x15b], cl
add eax, 4
cmp ebx, eax
jne 0x43c5d0
jmp 0x43c450
mov eax, dword [esp + 0x10]
xor dword [esi + 0x160], eax
mov eax, dword [esp + 0xc]
xor dword [esi + 0x164], eax
mov ecx, esi
mov edx, edi
push edi
call fcn.0043c650
add esp, 4
lea eax, [esi + 0x148]
lea ecx, [esp + 0x18]
push ecx
push eax
push 0x10
push edi
push esi
call fcn.00427370
add esp, 0x14
add esp, 0x1c
pop esi
pop edi
pop ebx
pop ebp
ret