Function at 0x43adc0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov esi, ecx
mov eax, dword [ecx + 4]
test eax, eax
je 0x43ade2
cmp eax, 2
je 0x43ae5b
jmp 0x43afaf
push 0xbbf966b4
push dword [0x44da90]
call fcn.00440ed0
add esp, 8
test eax, eax
je 0x43ae1f
mov ecx, dword [esi]
test ecx, ecx
je 0x43ae4f
mov dword [esp], 0
mov edx, esp
push edx
push ecx
call eax
test eax, eax
je 0x43ae2b
cmp dword [esp], 0
je 0x43ae2b
mov dword [esi + 4], 3
jmp 0x43ae4f
mov dword [esi + 4], 1
jmp 0x43afaf
lea eax, [esp + 0x40]
push eax
call fcn.00441770
add esp, 4
test al, al
je 0x43ae4f
mov eax, dword [esp + 0x40]
mov ecx, 2
cmp eax, 3
je 0x43ae4c
mov ecx, eax
mov dword [esi + 4], ecx
mov eax, dword [esi + 4]
cmp eax, 2
jne 0x43afaf
mov dword [esp], 0xb25dbf56
mov dword [esp + 4], 0x57b1b943
mov dword [esp + 8], 0xcac6c543
mov dword [esp + 0xc], 0x3e253b37
mov dword [esp + 0x10], 0xc6cccac7
mov byte [esp + 0x14], 0x58
mov dword [esp + 0x15], 0
mov dword [esp + 0x18], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
movzx edx, byte [esp + eax]
lea ecx, [eax - 0x10a8ab49]
mov ebx, edx
not ebx
or ebx, ecx
lea ecx, [edx + ebx]
inc ecx
mov ebx, ecx
and ebx, 0xfffffffd
mov edi, ecx
and edi, 2
or ecx, 2
imul ecx, edi
xor edi, 2
imul edi, ebx
add ecx, edi
add edx, eax
add edx, 0xef5754b7
mov edi, ecx
xor edi, edx
not ecx
and ecx, edx
add ecx, ecx
sub ecx, edi
add cl, 0x6d
mov byte [esp + eax], cl
lea ecx, [eax + eax]
and ecx, 2
mov edx, ecx
and edx, eax
xor ecx, eax
xor ecx, 1
lea eax, [ecx + edx*2]
cmp eax, 0x1c
jb 0x43aea0
mov ebx, esp
lea eax, [esp + 0x70]
push ebx
push eax
call fcn.0043ff40
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], 0
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x4c], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x48], eax
mov dword [esp + 0x54], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], 0
mov dword [esp + 0x64], 0
mov dword [esp + 0x60], 0x30
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
lea eax, [esp + 0x40]
push 6
push eax
push dword [esp + 0x7c]
push dword [esp + 0x7c]
call fcn.00440010
mov ecx, dword [esp]
mov edx, dword [esp + 4]
mov esi, dword [ebp + 0x10]
mov dword [esi + 4], edx
mov dword [esi], ecx
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x18]
mov esi, dword [ebp + 0x14]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x20]
mov edx, dword [ebp + 0x18]
mov dword [edx], ecx
mov ecx, dword [esp + 0x24]
mov edx, dword [ebp + 0x1c]
mov dword [edx], ecx
jmp 0x43b0b0
mov dword [esp + 0x40], 0xcfcec924
mov word [esp + 0x44], 0
xor eax, eax
mov ecx, eax
add cl, 0xb2
xor cl, byte [esp + eax + 0x40]
add cl, 0x86
mov byte [esp + eax + 0x40], cl
inc eax
cmp eax, 6
jne 0x43afc0
mov eax, dword [esp + 0x40]
mov dword [esp + 0x3c], eax
mov edi, dword [esi]
mov dword [esp], 0x7c7d7a7b
mov word [esp + 4], 0
mov byte [esp + 6], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax]
lea ebx, [esi + esi]
not ebx
add ebx, esi
mov ecx, esi
and ecx, 5
mov edx, ebx
and edx, 0xfa
or edx, ecx
lea ecx, [eax + 0xea]
xor edx, esi
xor edx, 0xfa
not esi
or esi, edx
mov edx, esi
not edx
or edx, ecx
add edx, esi
mov esi, 0xfe
sub esi, edx
or ebx, ecx
and ebx, esi
mov cl, 0x6d
sub cl, bl
mov byte [esp + eax], cl
mov ecx, eax
and ecx, 1
or eax, 0xd8742c21
add eax, ecx
add eax, 0x278bd3e0
cmp eax, 7
jb 0x43b000
mov eax, dword [esp]
mov ecx, dword [0x44da9c]
test ecx, ecx
je 0x43b08e
xor edx, edx
mov esi, dword [0x44daa0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0xba50defc
je 0x43b0ba
inc edx
cmp ecx, edx
jne 0x43b080
mov edx, dword [ebp + 0x10]
mov dword [edx], ecx
mov dword [edx + 4], 0
mov ecx, dword [ebp + 0x14]
mov dword [ecx], ebx
mov dword [ecx + 4], 0
mov ecx, dword [ebp + 0x18]
mov dword [ecx], edi
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], esi
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x18
mov dword [esp + 0x38], edi
mov edx, dword [esi + edx*8 + 4]
cmp edx, eax
je 0x43b08e
mov eax, esp
push 0
push dword [esp + 0x40]
push eax
push 0
push dword [ebp + 8]
push dword [esp + 0x4c]
push 6
push edx
push dword [0x44daa4]
call fcn.0043e1f0
add esp, 0x24
mov ecx, dword [esp]
mov ebx, dword [esp + 0xc]
mov edi, dword [esp + 0x10]
mov esi, dword [esp + 0x14]
jmp 0x43b08e