Function at 0x435b50
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff8
sub esp, 0x20
mov dword [esp + 8], ecx
cmp dword [ecx + 8], 0
je 0x435bd5
mov eax, dword [esp + 8]
mov edx, dword [eax]
test edx, edx
je 0x435bd5
mov edi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov dword [esp], 0x1c1d1a1b
mov dword [esp + 4], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
add bl, 0x3a
xor bl, byte [esp + eax]
add bl, 0xde
mov byte [esp + eax], bl
inc eax
cmp eax, 8
jne 0x435b90
mov eax, dword [esp]
mov esi, dword [0x4497f8]
test esi, esi
je 0x435c38
mov ecx, edi
xor edi, edi
mov ebx, dword [0x4497fc]
nop
cmp dword [ebx + edi*8], 0x2dedf0b8
je 0x435c13
inc edi
cmp esi, edi
jne 0x435bc0
mov edi, ecx
mov ecx, dword [ebp + 0xc]
jmp 0x435c38
mov dword [esp], 0x8146474c
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov eax, 0x8e
mov ecx, esp
nop
movzx esi, byte [ecx]
mov edx, eax
or edx, esi
and esi, eax
not edx
add edx, esi
add dl, 0xcb
mov byte [ecx], dl
dec eax
inc ecx
cmp eax, 0x87
jne 0x435bf0
mov eax, dword [esp]
jmp 0x435da8
mov esi, dword [ebx + edi*8 + 4]
cmp esi, eax
mov edi, ecx
mov ecx, dword [ebp + 0xc]
je 0x435c38
push dword [ebp + 8]
push edx
push 8
push esi
push dword [0x449800]
call fcn.00438810
mov ecx, dword [ebp + 0xc]
add esp, 0x14
cmp ecx, 1
mov edx, edi
sbb edx, 0
jl 0x435d11
cmp eax, 0xc000010a
jne 0x435d11
mov esi, ecx
and esi, 0xffffd8f0
mov eax, esi
xor eax, 0xffffd8f0
mov ebx, ecx
and ebx, 0x270f
mul ebx
mov dword [esp + 0xc], eax
mov eax, edi
not eax
imul eax, ebx
add edx, eax
mov ebx, edx
or ecx, 0xffffd8f0
imul edi, ecx
mov eax, ecx
mul esi
add edx, edi
sub edx, esi
add eax, dword [esp + 0xc]
adc edx, ebx
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 8]
mov edx, dword [eax]
mov dword [esp], 0x1c1d1a1b
mov dword [esp + 4], 0
xor eax, eax
nop
mov ebx, eax
add bl, 0x3a
xor bl, byte [esp + eax]
add bl, 0xde
mov byte [esp + eax], bl
inc eax
cmp eax, 8
jne 0x435cb0
mov eax, dword [esp]
mov esi, dword [0x4497f8]
test esi, esi
je 0x435d11
xor edi, edi
mov ebx, dword [0x4497fc]
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x4e66b5a3
je 0x435cf0
inc edi
cmp esi, edi
jne 0x435ce0
jmp 0x435d11
mov esi, dword [ebx + edi*8 + 4]
cmp esi, eax
je 0x435d11
lea eax, [esp + 0x10]
push eax
push 0
push edx
push 0xc
push esi
push dword [0x449800]
call fcn.00438810
add esp, 0x18
test eax, eax
js 0x435da8
mov ecx, dword [esp + 8]
mov ecx, dword [ecx]
test ecx, ecx
je 0x435da8
mov dword [esp], 0x1c1d1a1b
mov dword [esp + 4], 0
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ebx
add dl, 0x3a
xor dl, byte [esp + ebx]
add dl, 0xde
mov byte [esp + ebx], dl
inc ebx
cmp ebx, 8
jne 0x435d40
mov esi, dword [0x4497f8]
test esi, esi
je 0x435d9e
mov edx, dword [esp]
xor ebx, ebx
mov edi, dword [0x4497fc]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + ebx*8], 0xb62b8d10
je 0x435d80
inc ebx
cmp esi, ebx
jne 0x435d70
jmp 0x435d9e
mov esi, dword [edi + ebx*8 + 4]
cmp esi, edx
je 0x435d9e
push ecx
push 4
push esi
push dword [0x449800]
mov edi, eax
call fcn.00438810
mov eax, edi
add esp, 0x10
mov ecx, dword [esp + 8]
mov dword [ecx], 0
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret 0xc