Function at 0x43ca40
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov dword [esp + 0xc], 0x785d785e
mov ebx, dword [esp + 0x2c]
xor eax, eax
mov cl, 1
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, word [esp + eax*2 + 0xc]
mov edx, 0x6366
sub edx, eax
mov edi, eax
add edi, 0x5d6e9c99
xor edx, edi
and edx, esi
xor edx, edi
mov esi, edx
mov edi, edx
xor edi, 0x148b1b37
add edi, edx
and edx, 0x140a1b37
and esi, 0x4964e4c8
sub edi, esi
mov esi, edi
and esi, edx
xor edi, edx
lea edx, [edi + esi*2]
inc edx
mov word [esp + eax*2 + 0xc], dx
mov eax, 1
test cl, 1
mov ecx, 0
jne 0x43ca60
mov esi, dword [esp + 0xc]
mov eax, dword [0x4482e0]
test eax, eax
je 0x43cb0a
xor ecx, ecx
mov edx, dword [0x4482e4]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x2298ee00
je 0x43cae0
inc ecx
cmp eax, ecx
jne 0x43cad0
jmp 0x43cb0a
mov eax, dword [edx + ecx*8 + 4]
cmp eax, esi
je 0x43cb0a
lea ecx, [esp + 8]
push ecx
push 0
push 0
push 2
push dword [esp + 0x38]
push 0x14
push eax
push dword [0x4482e8]
call fcn.00439ac0
add esp, 0x20
mov esi, eax
cmp esi, 0xc0000023
jne 0x43cd57
push dword [esp + 8]
call fcn.00438390
add esp, 4
mov dword [esp], eax
mov ecx, dword [esp + 8]
mov dword [esp + 4], ecx
mov dword [esp + 0x10], 0x785d785e
xor ebp, ebp
mov cl, 1
nop
nop
nop
nop
nop
nop
nop
movzx edi, word [esp + ebp*2 + 0x10]
mov esi, 0x6366
sub esi, ebp
mov edx, ebp
add edx, 0x5d6e9c99
xor esi, edx
and esi, edi
xor esi, edx
mov edx, esi
mov edi, esi
xor edi, 0x148b1b37
add edi, esi
and esi, 0x140a1b37
and edx, 0x4964e4c8
sub edi, edx
mov edx, edi
and edx, esi
xor edi, esi
lea edx, [edi + edx*2]
inc edx
mov word [esp + ebp*2 + 0x10], dx
mov ebp, 1
test cl, 1
mov ecx, 0
jne 0x43cb40
mov esi, dword [esp + 0x10]
mov ecx, dword [0x4482e0]
test ecx, ecx
je 0x43cbc0
xor edx, edx
mov edi, dword [0x4482e4]
mov ebp, dword [esp + 0x48]
nop
nop
nop
nop
cmp dword [edi + edx*8], 0x2298ee00
je 0x43cbc6
inc edx
cmp ecx, edx
jne 0x43cbb0
jmp 0x43cbf8
mov ebp, dword [esp + 0x48]
jmp 0x43cbf8
mov ecx, dword [edi + edx*8 + 4]
cmp ecx, esi
je 0x43cbf8
lea edx, [esp + 8]
push edx
push dword [esp + 8]
push dword [esp + 8]
push 2
push dword [esp + 0x38]
push 0x14
push ecx
push dword [0x4482e8]
mov edi, eax
call fcn.00439ac0
add esp, 0x20
mov esi, eax
mov eax, edi
test esi, esi
js 0x43cd4c
mov edx, dword [esp + 0x30]
test edx, edx
je 0x43cce9
test ebx, ebx
je 0x43ccdf
mov ecx, dword [esp]
mov ecx, dword [ecx + 0x10]
shr ecx, 1
mov edi, dword [edx]
cmp edi, ecx
jb 0x43cc24
mov edi, ecx
test edi, edi
je 0x43ccd6
add eax, 0x2c
mov ecx, edi
and ecx, 3
je 0x43cc6e
mov dword [esp + 4], edi
xor edi, edi
nop
nop
nop
nop
movzx ebp, word [eax]
xor edx, edx
test bp, bp
setne dl
lea eax, [eax + edx*2]
mov word [ebx], bp
add ebx, 2
inc edi
cmp ecx, edi
jne 0x43cc40
mov ecx, dword [esp + 4]
mov ebp, ecx
sub ebp, edi
mov edi, ecx
mov edx, dword [esp + 0x30]
cmp edi, 4
jae 0x43cc80
jmp 0x43ccd6
mov ebp, edi
cmp edi, 4
jb 0x43ccd6
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edx, word [eax]
xor ecx, ecx
test dx, dx
setne cl
lea edi, [eax + ecx*2]
mov word [ebx], dx
movzx eax, word [eax + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
lea edx, [edi + ecx*2]
mov word [ebx + 2], ax
movzx eax, word [edi + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
lea edi, [edx + ecx*2]
mov word [ebx + 4], ax
movzx ecx, word [edx + ecx*2]
xor eax, eax
test cx, cx
setne al
mov word [ebx + 6], cx
add ebx, 8
lea eax, [edi + eax*2]
add ebp, 0xfffffffc
jne 0x43cc80
mov edx, dword [esp + 0x30]
mov word [ebx], 0
mov ebp, dword [esp + 0x48]
mov eax, dword [esp]
mov eax, dword [eax + 0x10]
shr eax, 1
mov dword [edx], eax
mov ecx, dword [esp + 0x34]
test ecx, ecx
je 0x43ccf9
mov eax, dword [esp]
mov eax, dword [eax + 0x14]
mov dword [ecx], eax
mov ebx, dword [esp + 0x38]
test ebx, ebx
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
mov edi, dword [esp + 0x3c]
je 0x43cd17
mov eax, dword [esp]
mov eax, dword [eax + 0x18]
shr eax, 1
mov dword [ebx], eax
test edi, edi
je 0x43cd25
mov eax, dword [esp]
mov eax, dword [eax + 0x1c]
shr eax, 1
mov dword [edi], eax
test edx, edx
je 0x43cd31
mov eax, dword [esp]
mov eax, dword [eax + 0x20]
mov dword [edx], eax
test ecx, ecx
je 0x43cd3f
mov eax, dword [esp]
mov eax, dword [eax + 0x24]
shr eax, 1
mov dword [ecx], eax
test ebp, ebp
je 0x43cd4c
mov eax, dword [esp]
mov eax, dword [eax + 0x28]
mov dword [ebp], eax
push dword [esp]
call fcn.004383b0
add esp, 4
mov eax, esi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret