Function at 0x436b80
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 0x436c0c
mov eax, dword [esp + 8]
mov edx, dword [eax]
test edx, edx
je 0x436c0c
mov edi, dword [ebp + 0x10]
mov ecx, dword [ebp + 0xc]
mov dword [esp], 0x14151a1b
mov dword [esp + 4], 0
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov ebx, eax
add bl, 0x86
xor bl, byte [esp + eax]
add bl, 0x62
mov byte [esp + eax], bl
inc eax
cmp eax, 8
jne 0x436bc0
mov eax, dword [esp]
mov ebx, dword [0x44a87c]
test ebx, ebx
je 0x436cb2
mov ecx, edi
xor esi, esi
mov edi, dword [0x44a880]
nop
cmp dword [edi + esi*8], 0x2dedf0b8
je 0x436c8d
inc esi
cmp ebx, esi
jne 0x436bf0
mov edi, ecx
mov ecx, dword [ebp + 0xc]
jmp 0x436cb2
mov dword [esp], 0x19dadbdc
mov word [esp + 4], 0
mov byte [esp + 6], 0
mov eax, 0x684e1bcf
mov ecx, 0x17b1e430
nop
nop
nop
nop
nop
nop
nop
movzx esi, byte [esp + eax - 0x684e1bcf]
mov edi, ecx
and edi, 0x10a04008
mov edx, eax
and edx, 0x48461b97
or edx, edi
xor edx, esi
mov esi, edx
xor esi, 0x30a84048
mov edi, edx
xor edi, 0x43
mov ebx, esi
or ebx, 0xf4
and ebx, edi
and esi, 0xf4
xor edx, 0xbc
or edx, esi
add edx, ebx
inc dl
mov byte [esp + eax - 0x684e1bcf], dl
inc eax
dec ecx
cmp eax, 0x684e1bd6
jne 0x436c30
mov eax, dword [esp]
jmp 0x436e28
mov esi, dword [edi + esi*8 + 4]
cmp esi, eax
mov edi, ecx
mov ecx, dword [ebp + 0xc]
je 0x436cb2
push dword [ebp + 8]
push edx
push 8
push esi
push dword [0x44a884]
call fcn.004395d0
mov ecx, dword [ebp + 0xc]
add esp, 0x14
cmp ecx, 1
mov edx, edi
sbb edx, 0
jl 0x436d91
cmp eax, 0xc000010a
jne 0x436d91
mov eax, ecx
or eax, 0xffffd8f0
mov ebx, ecx
and ebx, 0xffffd8f0
mov ecx, eax
imul ecx, edi
mul ebx
mov dword [esp + 0xc], eax
mov esi, edx
add esi, ecx
sub esi, ebx
mov eax, dword [ebp + 0xc]
and eax, 0x270f
xor ebx, 0xffffd8f0
not edi
imul edi, eax
mov ecx, eax
mov eax, ebx
mul ecx
add edx, edi
add eax, dword [esp + 0xc]
adc edx, esi
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], edx
mov eax, dword [esp + 8]
mov edx, dword [eax]
mov dword [esp], 0x14151a1b
mov dword [esp + 4], 0
xor eax, eax
nop
nop
nop
nop
nop
mov ebx, eax
add bl, 0x86
xor bl, byte [esp + eax]
add bl, 0x62
mov byte [esp + eax], bl
inc eax
cmp eax, 8
jne 0x436d30
mov eax, dword [esp]
mov esi, dword [0x44a87c]
test esi, esi
je 0x436d91
xor edi, edi
mov ebx, dword [0x44a880]
nop
nop
nop
nop
nop
nop
nop
cmp dword [ebx + edi*8], 0x4e66b5a3
je 0x436d70
inc edi
cmp esi, edi
jne 0x436d60
jmp 0x436d91
mov esi, dword [ebx + edi*8 + 4]
cmp esi, eax
je 0x436d91
lea eax, [esp + 0x10]
push eax
push 0
push edx
push 0xc
push esi
push dword [0x44a884]
call fcn.004395d0
add esp, 0x18
test eax, eax
js 0x436e28
mov ecx, dword [esp + 8]
mov ecx, dword [ecx]
test ecx, ecx
je 0x436e28
mov dword [esp], 0x14151a1b
mov dword [esp + 4], 0
xor ebx, ebx
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, ebx
add dl, 0x86
xor dl, byte [esp + ebx]
add dl, 0x62
mov byte [esp + ebx], dl
inc ebx
cmp ebx, 8
jne 0x436dc0
mov esi, dword [0x44a87c]
test esi, esi
je 0x436e1e
mov edx, dword [esp]
xor ebx, ebx
mov edi, dword [0x44a880]
nop
nop
nop
nop
nop
nop
nop
cmp dword [edi + ebx*8], 0xb62b8d10
je 0x436e00
inc ebx
cmp esi, ebx
jne 0x436df0
jmp 0x436e1e
mov esi, dword [edi + ebx*8 + 4]
cmp esi, edx
je 0x436e1e
push ecx
push 4
push esi
push dword [0x44a884]
mov edi, eax
call fcn.004395d0
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