Function at 0x43e5a0
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x20
cmp dword [ecx + 8], 0
je 0x43e633
mov edx, dword [ecx]
test edx, edx
je 0x43e633
mov dword [esp + 4], 0xe0e7e6e5
mov word [esp + 8], 0
mov esi, 0x59
mov ebx, 0x26
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, ebx
and edi, 0x3e
mov eax, esi
and eax, 0x41
or eax, edi
xor al, byte [esp + esi - 0x55]
xor al, 0xbe
add al, 0xc3
mov byte [esp + esi - 0x55], al
inc esi
dec ebx
cmp esi, 0x5f
jne 0x43e5e0
mov eax, dword [esp + 4]
mov ebx, dword [0x44fabc]
test ebx, ebx
je 0x43e6c1
xor edi, edi
mov esi, dword [0x44fac0]
nop
nop
nop
nop
nop
nop
nop
cmp dword [esi + edi*8], 0xdef797a3
je 0x43e6a0
inc edi
cmp ebx, edi
jne 0x43e620
jmp 0x43e6c1
mov dword [esp + 4], 0xf9babbbc
mov word [esp + 8], 0
mov edx, 0xdf
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx eax, byte [esp + edx - 0xdb]
mov ebx, eax
mov esi, eax
and ebx, edx
mov eax, ebx
or al, 0xfd
inc al
mov ecx, ebx
and cl, 0xfd
mul cl
mov ecx, eax
mov eax, esi
add cl, al
mov eax, ebx
shr al, 1
and al, 1
or bl, 2
mul bl
add al, al
sub cl, al
movzx eax, cl
add eax, edx
add al, 0xa5
mov byte [esp + edx - 0xdb], al
inc edx
cmp edx, 0xe5
jne 0x43e650
mov eax, dword [esp + 4]
jmp 0x43e84b
mov esi, dword [esi + edi*8 + 4]
cmp esi, eax
je 0x43e6c1
push dword [ebp + 8]
push edx
push 2
push dword [0x44fac4]
push esi
mov esi, ecx
call fcn.00440ac0
mov ecx, esi
add esp, 0x14
mov edi, dword [ebp + 0xc]
cmp edi, 1
mov esi, dword [ebp + 0x10]
mov edx, esi
sbb edx, 0
jl 0x43e795
cmp eax, 0xc000010a
jne 0x43e795
mov edx, 0xffffd8f0
mov eax, edi
mul edx
sub edx, edi
imul esi, esi, 0xffffd8f0
add esi, edx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], esi
mov edx, dword [ecx]
mov dword [esp + 4], 0xe0e7e6e5
mov word [esp + 8], 0
mov eax, 0x59
mov esi, 0x26
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edi, esi
and edi, 0x3e
mov ebx, eax
and ebx, 0x41
or ebx, edi
xor bl, byte [esp + eax - 0x55]
xor bl, 0xbe
add bl, 0xc3
mov byte [esp + eax - 0x55], bl
inc eax
dec esi
cmp eax, 0x5f
jne 0x43e720
mov eax, dword [esp + 4]
mov esi, dword [0x44fabc]
test esi, esi
je 0x43e795
xor edi, edi
mov ebx, dword [0x44fac0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x53f09cfa
je 0x43e770
inc edi
cmp esi, edi
jne 0x43e760
jmp 0x43e795
mov esi, dword [ebx + edi*8 + 4]
cmp esi, eax
je 0x43e795
lea eax, [esp + 0x10]
push eax
push 0
push edx
push 3
push dword [0x44fac4]
push esi
mov esi, ecx
call fcn.00440ac0
mov ecx, esi
add esp, 0x18
test eax, eax
js 0x43e84b
mov edx, dword [ecx]
test edx, edx
je 0x43e84b
mov dword [esp + 0xc], edx
mov dword [esp + 4], 0xe0e7e6e5
mov word [esp + 8], 0
mov esi, 0x26
mov edi, 0x59
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, esi
and edx, 0x3e
mov ebx, edi
and ebx, 0x41
or ebx, edx
xor bl, byte [esp + edi - 0x55]
xor bl, 0xbe
add bl, 0xc3
mov byte [esp + edi - 0x55], bl
dec esi
inc edi
cmp esi, 0x20
jne 0x43e7d0
mov esi, dword [0x44fabc]
test esi, esi
je 0x43e845
mov edx, dword [esp + 4]
xor ebx, ebx
mov edi, dword [0x44fac0]
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + ebx*8], 0x7e776f1
je 0x43e820
inc ebx
cmp esi, ebx
jne 0x43e810
jmp 0x43e845
mov esi, dword [edi + ebx*8 + 4]
cmp esi, edx
je 0x43e845
push dword [esp + 0xc]
push 1
push dword [0x44fac4]
push esi
mov esi, ecx
mov edi, eax
call fcn.00440ac0
mov eax, edi
mov ecx, esi
add esp, 0x10
mov dword [ecx], 0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc