Function at 0x43e8d0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x14
mov esi, ecx
mov dword [esp + 8], 0
mov dword [esp], 0xdcdddedf
mov dword [esp + 4], 0
xor eax, eax
mov ecx, 0x31588af
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, byte [esp + eax]
mov edx, ecx
and edx, 0x314880d
mov ebx, eax
and ebx, 2
mov ebp, edi
and ebp, 0x5d
or ebp, 0x90454822
and edi, 0xffffffa2
add edx, ebx
add edx, 0x28480100
xor edx, edi
xor edx, ebp
mov ebx, edx
xor ebx, 0xb767e2ef
mov edi, edx
and edi, 0x100090
xor edi, 0xf7aab7f
and edi, ebx
mov ebp, edi
and ebp, 0xfd
and ebx, 2
or edi, 2
imul edi, ebx
xor ebx, 2
imul ebx, ebp
xor edx, 0x10
add edx, edi
add edx, ebx
inc dl
mov byte [esp + eax], dl
inc eax
dec ecx
cmp eax, 8
jne 0x43e900
mov edi, dword [esp]
mov eax, dword [0x45064c]
test eax, eax
je 0x43e9c6
xor ecx, ecx
mov edx, dword [0x450650]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x9abdb589
je 0x43e9a0
inc ecx
cmp eax, ecx
jne 0x43e990
jmp 0x43e9c6
mov eax, dword [edx + ecx*8 + 4]
cmp eax, edi
je 0x43e9c6
lea ecx, [esp + 8]
push ecx
push 0
push 0
push 5
push 4
push dword [0x450654]
push eax
call fcn.00441b40
add esp, 0x1c
mov edi, eax
mov dword [esp], 0x114e4f48
mov eax, 0x90a7250d
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 0x6f58daf3]
xor ecx, eax
mov edx, ecx
and edx, 1
xor ecx, 1
lea ecx, [ecx + edx*2]
add cl, 0xbe
mov byte [esp + eax + 0x6f58daf3], cl
inc eax
cmp eax, 0x90a72511
jne 0x43e9e0
cmp edi, dword [esp]
jne 0x43eb76
mov dword [esp + 0xc], esi
push dword [esp + 8]
call fcn.0043e7c0
add esp, 4
mov ecx, dword [esp + 8]
mov dword [esp + 0x10], ecx
mov dword [esp], 0xdcdddedf
mov dword [esp + 4], 0
xor edx, edx
mov edi, 0x31588af
nop
nop
movzx esi, byte [esp + edx]
mov ebx, edi
and ebx, 0x314880d
mov ebp, edx
and ebp, 2
mov ecx, esi
and ecx, 0x5d
or ecx, 0x90454822
and esi, 0xffffffa2
add ebx, ebp
add ebx, 0x28480100
xor ebx, esi
xor ebx, ecx
mov ebp, ebx
xor ebp, 0xb767e2ef
mov ecx, ebx
and ecx, 0x100090
xor ecx, 0xf7aab7f
and ecx, ebp
mov esi, ecx
and esi, 0xfd
and ebp, 2
or ecx, 2
imul ecx, ebp
xor ebp, 2
imul ebp, esi
xor ebx, 0x10
add ebx, ecx
add ebx, ebp
inc bl
mov byte [esp + edx], bl
inc edx
dec edi
cmp edx, 8
jne 0x43ea40
mov edi, dword [esp]
mov ecx, dword [0x45064c]
test ecx, ecx
je 0x43eae0
xor edx, edx
mov ebx, dword [0x450650]
mov esi, dword [esp + 0xc]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edx*8], 0x9abdb589
je 0x43eae6
inc edx
cmp ecx, edx
jne 0x43ead0
jmp 0x43eb0e
mov esi, dword [esp + 0xc]
jmp 0x43eb0e
mov ecx, dword [ebx + edx*8 + 4]
cmp ecx, edi
je 0x43eb0e
push 0
push dword [esp + 0x14]
push eax
push 5
push 4
push dword [0x450654]
push ecx
mov ebx, eax
call fcn.00441b40
add esp, 0x1c
mov edi, eax
mov eax, ebx
test edi, edi
js 0x43eb6d
mov edi, dword [eax]
mov ecx, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [ecx + edi + 0x3c]
add ecx, edi
xor edi, edi
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, word [edx + edi]
mov ebp, dword [esp + 0x28]
movzx ebp, word [ebp + edi]
test bx, bx
je 0x43eb4a
add edi, 2
cmp bx, bp
je 0x43eb30
cmp bx, bp
je 0x43eb5c
mov edi, dword [ecx]
test edi, edi
jne 0x43eb20
mov edi, 0xc0000225
jmp 0x43eb6d
mov edx, dword [ecx + 0x44]
mov dword [esi + 8], edx
mov ecx, dword [ecx + 0xdc]
mov dword [esi + 0xc], ecx
xor edi, edi
push eax
call fcn.0043e820
add esp, 4
mov eax, edi
add esp, 0x14
pop esi
pop edi
pop ebx
pop ebp
ret 4