Function at 0x43e4c0
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 0x43e4e2
cmp eax, 2
je 0x43e55b
jmp 0x43e67e
push 0xf8eb88df
push dword [0x44fd54]
call fcn.00443090
add esp, 8
test eax, eax
je 0x43e51f
mov ecx, dword [esi]
test ecx, ecx
je 0x43e54f
mov dword [esp], 0
mov edx, esp
push edx
push ecx
call eax
test eax, eax
je 0x43e52b
cmp dword [esp], 0
je 0x43e52b
mov dword [esi + 4], 3
jmp 0x43e54f
mov dword [esi + 4], 1
jmp 0x43e67e
lea eax, [esp + 0x48]
push eax
call fcn.00443940
add esp, 4
test al, al
je 0x43e54f
mov eax, dword [esp + 0x48]
mov ecx, 2
cmp eax, 3
je 0x43e54c
mov ecx, eax
mov dword [esi + 4], ecx
mov eax, dword [esi + 4]
cmp eax, 2
jne 0x43e67e
mov dword [esp], 0xbe83bd86
mov dword [esp + 4], 0x81a7bfb1
mov dword [esp + 8], 0xa6a6bbb1
mov dword [esp + 0xc], 0xba93b185
mov dword [esp + 0x10], 0xaab0b6b5
mov byte [esp + 0x14], 0x1c
mov dword [esp + 0x15], 0
mov dword [esp + 0x18], 0
xor edi, edi
xor ecx, ecx
nop
nop
nop
nop
nop
movzx ebx, byte [esp + ecx]
mov eax, edi
and eax, 0x18
mov edx, ecx
xor edx, 0x1e9d350c
add edx, eax
mov eax, edx
and eax, ebx
add edx, ebx
add eax, eax
sub edx, eax
add dl, 0xc4
mov byte [esp + ecx], dl
inc ecx
add edi, 2
cmp ecx, 0x1c
jne 0x43e5a0
mov ebx, esp
lea eax, [esp + 0x40]
push ebx
push eax
call fcn.00442610
add esp, 8
mov eax, dword [esi]
mov dword [esp + 0x48], eax
mov dword [esp + 0x4c], 0
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x54], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x50], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x58], 0
mov dword [esp + 0x60], ebx
mov dword [esp + 0x64], 0
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0x30
mov dword [esp + 0x74], 0
mov dword [esp + 0x70], 0
lea eax, [esp + 0x48]
push 6
push eax
push dword [esp + 0x4c]
push dword [esp + 0x4c]
call fcn.004426e0
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 0x43e720
mov ebx, dword [esi]
mov dword [esp], 0x1c1d1a1b
mov byte [esp + 4], 0
mov eax, esp
mov edx, 0x27da70c5
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [eax]
mov edi, edx
or edi, esi
not edi
lea ecx, [edx - 0x27da7000]
and ecx, esi
or ecx, edi
mov esi, ecx
not esi
add ecx, 0xdd
and esi, 1
or ecx, 1
add ecx, esi
mov byte [eax], cl
inc eax
dec edx
cmp edx, 0x27da70c0
jne 0x43e6a0
mov eax, dword [esp]
mov ecx, dword [0x44fd60]
test ecx, ecx
je 0x43e6fe
xor edx, edx
mov esi, dword [0x44fd64]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edx*8], 0x7b3afdab
je 0x43e72a
inc edx
cmp ecx, edx
jne 0x43e6f0
mov ecx, dword [ebp + 0x10]
mov dword [ecx], ebx
mov dword [ecx + 4], 0
mov ecx, dword [ebp + 0x14]
mov dword [ecx], edi
mov dword [ecx + 4], 0
mov ecx, dword [ebp + 0x18]
mov dword [ecx], esi
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], edx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0x18
mov dword [esp + 0x3c], ebx
mov ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x43e6fe
mov eax, esp
push 0
push 0x1c
push eax
push 0
push dword [ebp + 8]
push dword [esp + 0x50]
push 6
push dword [0x44fd68]
push ecx
call fcn.004407f0
add esp, 0x24
mov ebx, dword [esp]
mov edi, dword [esp + 0xc]
mov esi, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
jmp 0x43e6fe