Function at 0x43f3c0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x90
mov esi, ecx
mov eax, dword [ecx + 4]
test eax, eax
je 0x43f3e6
cmp eax, 2
je 0x43f463
jmp 0x43f5b3
push 0xbbf966b4
push dword [0x450640]
call fcn.00444150
add esp, 8
test eax, eax
je 0x43f427
mov ecx, dword [esi]
test ecx, ecx
je 0x43f457
mov dword [esp + 0x10], 0
lea edx, [esp + 0x10]
push edx
push ecx
call eax
test eax, eax
je 0x43f433
cmp dword [esp + 0x10], 0
je 0x43f433
mov dword [esi + 4], 3
jmp 0x43f457
mov dword [esi + 4], 1
jmp 0x43f5b3
lea eax, [esp + 0x58]
push eax
call fcn.00444990
add esp, 4
test al, al
je 0x43f457
mov eax, dword [esp + 0x58]
mov ecx, 2
cmp eax, 3
je 0x43f454
mov ecx, eax
mov dword [esi + 4], ecx
mov eax, dword [esi + 4]
cmp eax, 2
jne 0x43f5b3
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0x62d0b22
mov dword [esp + 0x14], 0x23190137
mov dword [esp + 0x18], 0x1e02050f
mov dword [esp + 0x1c], 0x2a35172b
mov dword [esp + 0x20], 0xa1c1e13
mov byte [esp + 0x24], 0x80
mov word [esp + 0x25], 0
mov byte [esp + 0x27], 0
mov eax, 0xc4e76de5
mov ecx, 0x44e76de6
mov edx, 0x3b18921c
nop
movzx esi, byte [esp + eax + 0x3b18922b]
mov edi, eax
xor edi, esi
lea ebx, [edi + edi]
not ebx
add ebx, edi
lea edi, [edx - 2]
or edi, ebx
add edi, ecx
add edi, edi
mov ebx, esi
sub ebx, edi
sub edi, esi
add ebx, eax
add edi, edx
not edi
and edi, 1
or ebx, 1
add ebx, edi
add bl, 0x86
mov byte [esp + eax + 0x3b18922b], bl
inc eax
inc ecx
dec edx
cmp eax, 0xc4e76dfd
jne 0x43f4b0
lea esi, [esp + 0x10]
lea eax, [esp + 0x50]
push esi
push eax
call fcn.00443560
add esp, 8
mov eax, dword [esp + 0xc]
mov eax, dword [eax]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 0
mov eax, dword [ebp + 0xc]
mov dword [esp + 0x64], eax
mov eax, dword [ebp + 8]
mov dword [esp + 0x60], eax
mov dword [esp + 0x6c], 0
mov dword [esp + 0x68], 0
mov dword [esp + 0x70], esi
mov dword [esp + 0x74], 0
mov dword [esp + 0x7c], 0
mov dword [esp + 0x78], 0x30
mov dword [esp + 0x84], 0
mov dword [esp + 0x80], 0
lea eax, [esp + 0x58]
push 6
push eax
push dword [esp + 0x5c]
push dword [esp + 0x5c]
call fcn.00443630
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov esi, dword [ebp + 0x10]
mov dword [esi + 4], edx
mov dword [esi], ecx
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov esi, dword [ebp + 0x14]
mov dword [esi], edx
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x30]
mov edx, dword [ebp + 0x18]
mov dword [edx], ecx
mov ecx, dword [esp + 0x34]
mov edx, dword [ebp + 0x1c]
mov dword [edx], ecx
jmp 0x43f690
mov eax, dword [esi]
mov dword [esp + 0x4c], eax
mov dword [esp + 0x10], 0xdcdddedf
mov dword [esp + 0x14], 0
xor eax, eax
mov edx, 0x31588af
mov dword [esp + 0xc], edx
movzx edx, byte [esp + eax + 0x10]
mov esi, dword [esp + 0xc]
and esi, 0x314880d
mov edi, eax
and edi, 2
mov ecx, edx
and ecx, 0x5d
or ecx, 0x90454822
and edx, 0xffffffa2
lea ebx, [edi + esi]
add ebx, 0x28480100
xor ebx, edx
xor ebx, ecx
mov ecx, ebx
xor ecx, 0xb767e2ef
mov esi, ebx
and esi, 0x100090
xor esi, 0xf7aab7f
and esi, ecx
mov edi, esi
and edi, 0xfd
and ecx, 2
or esi, 2
imul esi, ecx
xor ecx, 2
imul ecx, edi
xor ebx, 0x10
add ebx, esi
mov edx, dword [esp + 0xc]
add ebx, ecx
inc bl
mov byte [esp + eax + 0x10], bl
inc eax
dec edx
cmp eax, 8
jne 0x43f5d0
mov eax, dword [esp + 0x10]
mov ecx, dword [0x45064c]
test ecx, ecx
je 0x43f66e
xor edx, edx
mov esi, dword [0x450650]
cmp dword [esi + edx*8], 0xba50defc
je 0x43f69a
inc edx
cmp ecx, edx
jne 0x43f660
mov ecx, dword [ebp + 0x10]
mov dword [ecx], edi
mov dword [ecx + 4], 0
mov ecx, dword [ebp + 0x14]
mov dword [ecx], ebx
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 ecx, dword [esi + edx*8 + 4]
cmp ecx, eax
je 0x43f66e
lea eax, [esp + 0x10]
push 0
push 0x1c
push eax
push 0
push dword [ebp + 8]
push dword [esp + 0x60]
push 6
push dword [0x450654]
push ecx
call fcn.00441b40
add esp, 0x24
mov edi, dword [esp + 0x10]
mov ebx, dword [esp + 0x1c]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
jmp 0x43f66e