Function at 0x43ce70
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x24
mov eax, dword [esp + 0x3c]
xor ecx, ecx
test eax, eax
je 0x43cea3
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp word [eax + ecx], 0
lea ecx, [ecx + 2]
jne 0x43ce90
add ecx, 0xfffffffe
and ecx, 0xfffe
mov word [esp + 0x18], cx
mov edx, eax
test eax, eax
je 0x43ceb3
add ecx, 2
mov edx, ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0xc], ecx
mov word [esp + 0x1a], dx
mov dword [esp + 0x1c], eax
mov dword [esp + 4], 0xe7e6e5e4
xor eax, eax
nop
nop
mov ecx, eax
or cl, 0xc4
xor cl, byte [esp + eax + 4]
add cl, 0xe0
mov byte [esp + eax + 4], cl
mov ecx, eax
and ecx, 1
xor eax, 1
lea eax, [eax + ecx*2]
cmp eax, 4
jb 0x43ced0
mov ebp, dword [esp + 4]
mov dword [esp + 0x14], 0xa2a1a0ad
mov ecx, 0x17
mov edx, 0xe8
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx - 3]
mov edi, esi
not edi
mov ebx, ecx
and ebx, edi
or edi, edx
lea eax, [esi + edi]
inc eax
or eax, ebx
add al, 0x48
mov byte [esp + ecx - 3], al
inc ecx
dec edx
cmp ecx, 0x1b
jne 0x43cf10
mov ecx, dword [esp + 0x14]
mov dword [esp], 0xc4c5c6c7
mov edx, 0xf9309b78
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx + 0x6cf6488]
xor eax, edx
mov ebx, eax
or ebx, 0x3f
add ebx, eax
not eax
or eax, 0x3f
add ebx, eax
add bl, 2
mov byte [esp + edx + 0x6cf6488], bl
inc edx
cmp edx, 0xf9309b7c
jne 0x43cf50
mov ebx, dword [esp]
mov edx, dword [0x448580]
test edx, edx
je 0x43cfcd
xor esi, esi
mov edi, dword [0x448584]
cmp dword [edi + esi*8], 0x299a4ecd
je 0x43cfa0
inc esi
cmp edx, esi
jne 0x43cf90
jmp 0x43cfcd
mov edx, dword [edi + esi*8 + 4]
cmp edx, ebx
je 0x43cfcd
lea eax, [esp + 0x10]
lea esi, [esp + 0x18]
push eax
push ebp
push 0
push ecx
push esi
push dword [esp + 0x4c]
push 0x18
push edx
push dword [0x448588]
call fcn.00439ae0
add esp, 0x24
mov ebx, eax
mov dword [esp], 0xc48382a2
xor eax, eax
xor ecx, ecx
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + ecx]
mov edi, eax
and edi, 2
mov edx, ecx
xor edx, 0x86a661c9
add edx, edi
xor edx, esi
mov esi, edx
not esi
mov edi, edx
xor edi, 0x48
or edx, 0xb7
and edx, edi
and esi, 0x48
sub edx, esi
mov byte [esp + ecx], dl
inc ecx
add eax, 2
cmp ecx, 4
jne 0x43cfe0
cmp ebx, dword [esp]
jne 0x43d220
push dword [esp + 0x10]
call fcn.00437ee0
add esp, 4
mov dword [esp + 8], eax
mov ecx, dword [esp + 0x10]
mov dword [esp + 0x20], ecx
mov dword [esp + 4], 0xf0e0f
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebp, edi
and ebp, 1
lea esi, [ebp*2]
movzx ebx, byte [esp + edi + 4]
mov ecx, edi
xor ecx, 0x6cc4f9da
mov edx, edi
or edx, 1
and edx, ecx
mov ecx, edx
and ecx, 2
or edx, 2
imul edx, ecx
xor ecx, 2
neg ebp
and ebp, ecx
add edx, ebp
mov ecx, edi
sub ecx, esi
add ecx, edx
add ecx, 0x933b0625
xor ecx, ebx
lea edx, [ecx + 0x6627ced7]
mov esi, edx
and esi, 1
mov ebx, edx
and ebx, 0xfe
xor edx, 1
add ecx, edx
add ecx, 0x6627ced7
sub ecx, ebx
add ecx, esi
mov byte [esp + edi + 4], cl
inc edi
cmp edi, 4
jne 0x43d050
mov edx, dword [esp + 4]
mov dword [esp], 0xc4c5c6c7
mov ebx, 0xf9309b78
nop
nop
movzx esi, byte [esp + ebx + 0x6cf6488]
xor esi, ebx
mov ecx, esi
or ecx, 0x3f
add ecx, esi
not esi
or esi, 0x3f
add ecx, esi
add cl, 2
mov byte [esp + ebx + 0x6cf6488], cl
inc ebx
cmp ebx, 0xf9309b7c
jne 0x43d0d0
mov ebx, dword [esp]
mov esi, dword [0x448580]
test esi, esi
je 0x43d154
xor edi, edi
mov ebp, dword [0x448584]
cmp dword [ebp + edi*8], 0x299a4ecd
je 0x43d121
inc edi
cmp esi, edi
jne 0x43d110
jmp 0x43d154
mov esi, dword [ebp + edi*8 + 4]
cmp esi, ebx
je 0x43d154
lea ecx, [esp + 0x10]
lea edi, [esp + 0x18]
push ecx
push dword [esp + 0x24]
mov eax, dword [esp + 0x10]
push eax
push edx
push edi
push dword [esp + 0x4c]
push 0x18
push esi
push dword [0x448588]
call fcn.00439ae0
add esp, 0x24
mov ebx, eax
test ebx, ebx
mov edx, dword [esp + 0x44]
js 0x43d214
mov esi, dword [esp + 0x40]
test esi, esi
je 0x43d171
mov eax, dword [esp + 8]
mov ecx, dword [eax + 4]
mov dword [esi], ecx
cmp dword [esp + 0x48], 0
je 0x43d214
test edx, edx
je 0x43d207
mov ecx, dword [esp + 0x48]
mov esi, dword [ecx]
mov eax, dword [esp + 8]
mov ecx, dword [eax + 8]
lea edx, [eax + 0xc]
cmp esi, ecx
jb 0x43d19a
mov esi, ecx
mov ecx, esi
shr ecx, 2
mov edi, dword [esp + 0x44]
xchg esi, edx
rep movsd dword es:[edi], dword [esi]
xchg esi, edx
mov ecx, esi
and ecx, 0xfffffffc
add dword [esp + 0xc], ecx
mov eax, dword [esp + 8]
add eax, ecx
add eax, 0xc
mov edx, esi
and edx, 3
mov ecx, edx
shr ecx, 1
mov ebp, eax
mov edi, dword [esp + 0xc]
xchg esi, ebp
rep movsw word es:[edi], word [esi]
xchg esi, ebp
mov edi, dword [esp + 0xc]
mov ecx, edx
xor ecx, 0xfffffffe
or edx, 1
and edx, ecx
je 0x43d207
and esi, 2
movzx ecx, byte [eax + esi]
mov byte [edi + esi], cl
cmp edx, 1
je 0x43d207
movzx ecx, byte [eax + esi + 1]
mov byte [edi + esi + 1], cl
cmp edx, 2
je 0x43d207
movzx ecx, byte [eax + esi + 2]
mov byte [edi + esi + 2], cl
mov eax, dword [esp + 8]
mov ecx, dword [eax + 8]
mov edx, dword [esp + 0x48]
mov dword [edx], ecx
push dword [esp + 8]
call fcn.00437f00
add esp, 4
mov eax, ebx
add esp, 0x24
pop esi
pop edi
pop ebx
pop ebp
ret