Function at 0x43c8f0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov esi, dword [esp + 0x30]
mov dword [esp], 0xb1b2b3b4
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ecx, eax
add cl, 0xa3
xor cl, byte [esp + eax]
add cl, 0xe8
mov byte [esp + eax], cl
inc eax
cmp eax, 4
jne 0x43c910
mov ebp, dword [esp]
mov edi, dword [0x448334]
test edi, edi
je 0x43c97e
xor ecx, ecx
mov edx, dword [0x448338]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x29df508e
je 0x43c950
inc ecx
cmp edi, ecx
jne 0x43c940
jmp 0x43c97e
mov edx, dword [edx + ecx*8 + 4]
cmp edx, ebp
je 0x43c97e
lea ecx, [esp + 8]
push ecx
push 0
push 0
push 0
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push 0x18
push edx
push dword [0x44833c]
call fcn.0043a070
add esp, 0x24
mov ebp, eax
mov dword [esp], 0x13d2d1f3
mov ecx, 0xbf3b63cf
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + ecx + 0x40c49c31]
lea ebx, [ecx + 0x40c49c81]
and ebx, edx
mov eax, ecx
add al, dl
and al, 1
add al, dl
add edx, ecx
sub edx, ebx
sub edx, ebx
mov ah, dl
xor ah, 1
add ah, al
and dl, 0xfe
sub ah, dl
add bl, bl
sub ah, bl
movzx eax, ah
add eax, ecx
mov byte [esp + ecx + 0x40c49c31], al
inc ecx
cmp ecx, 0xbf3b63d3
jne 0x43c990
mov edi, ebp
cmp ebp, dword [esp]
jne 0x43cb85
push dword [esp + 8]
call fcn.00438690
add esp, 4
mov ebp, eax
mov ecx, dword [esp + 8]
mov dword [esp], 0xb1b2b3b4
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
mov ebx, edx
add bl, 0xa3
xor bl, byte [esp + edx]
add bl, 0xe8
mov byte [esp + edx], bl
inc edx
cmp edx, 4
jne 0x43ca00
mov edi, dword [esp]
mov edx, dword [0x448334]
test edx, edx
mov dword [esp + 4], ebp
je 0x43ca4d
mov ebx, edi
xor edi, edi
mov ebp, dword [0x448338]
nop
cmp dword [ebp + edi*8], 0x29df508e
je 0x43ca53
inc edi
cmp edx, edi
jne 0x43ca30
mov ecx, dword [esp + 0x34]
mov edi, ebx
mov ebx, ecx
mov ebp, dword [esp + 4]
jmp 0x43ca8f
mov ebx, dword [esp + 0x34]
jmp 0x43ca8f
mov edx, dword [ebp + edi*8 + 4]
mov edi, ebx
cmp edx, ebx
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 4]
je 0x43ca8f
lea edi, [esp + 8]
push edi
push ecx
push ebp
push 0
push dword [esp + 0x3c]
push dword [esp + 0x3c]
push 0x18
push edx
push dword [0x44833c]
mov edi, eax
call fcn.0043a070
add esp, 0x24
mov ecx, eax
mov eax, edi
mov edi, ecx
test ebx, ebx
je 0x43cb7c
test edi, edi
js 0x43cb7c
test esi, esi
je 0x43cb75
mov ecx, dword [ebp + 0xc]
shr ecx, 1
mov edx, dword [ebx]
cmp edx, ecx
jb 0x43cab4
mov edx, ecx
test edx, edx
je 0x43cb68
add eax, 0x10
mov ecx, edx
and ecx, 3
mov dword [esp + 0xc], edi
je 0x43cafc
mov dword [esp + 0x10], edx
xor edi, edi
movzx ebx, word [eax]
xor edx, edx
test bx, bx
setne dl
lea eax, [eax + edx*2]
mov word [esi], bx
add esi, 2
inc edi
cmp ecx, edi
jne 0x43cad0
mov edx, dword [esp + 0x10]
mov ebp, edx
sub ebp, edi
mov edi, dword [esp + 0xc]
cmp edx, 4
jae 0x43cb10
jmp 0x43cb68
mov ebp, edx
cmp edx, 4
jb 0x43cb68
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, esi
movzx edx, word [eax]
xor ecx, ecx
test dx, dx
setne cl
lea esi, [eax + ecx*2]
mov word [ebx], dx
movzx eax, word [eax + ecx*2]
xor ecx, ecx
test ax, ax
setne cl
lea edx, [esi + ecx*2]
mov word [ebx + 2], ax
movzx eax, word [esi + 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
lea esi, [ebx + 8]
lea eax, [edi + eax*2]
add ebp, 0xfffffffc
jne 0x43cb10
mov edi, dword [esp + 0xc]
mov word [esi], 0
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 4]
mov eax, dword [ebp + 0xc]
shr eax, 1
mov dword [ebx], eax
push ebp
call fcn.004386c0
add esp, 4
mov eax, edi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret