Function at 0x436c10
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1028
call 0x4890c0
push ebx
push ebp
push esi
mov esi, dword [esp + 0x1048]
push edi
mov dword [esp + 0x20], 0
mov dword [esp + 0x18], 0x20
test esi, esi
jle 0x436d26
mov ebx, dword [esp + 0x1040]
mov eax, dword [esp + 0x1044]
sub eax, ebx
mov dword [esp + 0x10], ebx
mov dword [esp + 0x1c], eax
mov dword [esp + 0x14], esi
jmp 0x436c64
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x1048]
mov edx, dword [eax + ebx]
xor ecx, ecx
mov esi, edi
test edi, edi
je 0x436c89
mov eax, dword [edx]
mov ebp, eax
sar ebp, 0x1f
xor ebp, eax
add edx, 4
or ecx, ebp
sub esi, 1
jne 0x436c76
not ecx
xor eax, eax
test ecx, ecx
jns 0x436c98
add ecx, ecx
inc eax
test ecx, ecx
js 0x436c91
mov edx, dword [ebx]
xor ecx, ecx
dec eax
test eax, eax
setl cl
mov esi, edi
dec ecx
and ecx, eax
mov ebp, ecx
xor ecx, ecx
test edi, edi
je 0x436cc7
nop
mov eax, dword [edx]
mov ebx, eax
sar ebx, 0x1f
xor ebx, eax
add edx, 4
or ecx, ebx
sub esi, 1
jne 0x436cb0
mov ebx, dword [esp + 0x10]
not ecx
xor eax, eax
test ecx, ecx
jns 0x436cd7
nop
add ecx, ecx
inc eax
test ecx, ecx
js 0x436cd0
dec eax
xor edx, edx
test eax, eax
setl dl
dec edx
and eax, edx
cmp eax, ebp
jl 0x436ce8
mov eax, ebp
cmp dword [esp + 0x18], eax
jl 0x436cf2
mov dword [esp + 0x18], eax
add ebx, 4
sub dword [esp + 0x14], 1
mov dword [esp + 0x10], ebx
jne 0x436c60
cmp dword [esp + 0x18], 0x1f
jl 0x436d41
mov edx, dword [esp + 0x1050]
mov esi, dword [esp + 0x104c]
mov eax, 0xf
sub eax, dword [edx]
mov dword [esp + 0x18], eax
jmp 0x436d4f
mov edx, dword [esp + 0x1050]
mov edi, dword [esp + 0x1048]
mov eax, 0xf
sub eax, dword [edx]
mov dword [esp + 0x18], eax
jmp 0x436d4f
mov esi, dword [esp + 0x104c]
mov edx, dword [esp + 0x1050]
mov eax, dword [esp + 0x18]
dec eax
xor ecx, ecx
test eax, eax
setl cl
dec ecx
and ecx, eax
add dword [edx], ecx
lea eax, [esp + 0x38]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x2c], eax
test esi, esi
jle 0x436e2e
mov eax, dword [esp + 0x1044]
mov edx, dword [esp + 0x1040]
sub edx, eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x34], edx
mov dword [esp + 0x1c], esi
mov ebp, dword [edx + eax]
mov ebx, dword [eax]
test edi, edi
jle 0x436e15
sub ebp, ebx
mov dword [esp + 0x24], edi
nop
mov esi, dword [ebx + ebp]
mov edi, dword [ebx]
shl esi, cl
shl edi, cl
mov dword [esp + 0x10], esi
mov dword [esp + 0x30], edi
mov dword [esp + 0x14], esi
mov eax, dword [esp + 0x14]
imul dword [esp + 0x10]
mov dword [esp + 0x14], edx
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x10], edi
mov eax, dword [esp + 0x10]
imul dword [esp + 0x30]
mov dword [esp + 0x10], edx
mov edx, dword [esp + 0x10]
lea eax, [edx + ecx]
mov ecx, dword [esp + 0x2c]
mov dword [ecx], eax
add ecx, 4
cmp dword [esp + 0x20], eax
mov dword [esp + 0x2c], ecx
jg 0x436df3
mov dword [esp + 0x20], eax
mov ecx, dword [esp + 0x18]
mov dword [ebx + ebp], esi
mov dword [ebx], edi
add ebx, 4
sub dword [esp + 0x24], 1
jne 0x436da0
mov edi, dword [esp + 0x1048]
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x34]
add eax, 4
sub dword [esp + 0x1c], 1
and al, 0x1c
add dword [ecx + 0xf282444], ecx
test dword [ecx - 1], ebp
invalid
invalid
mov edx, dword [esp + 0x1050]
mov eax, dword [edx]
mov ecx, dword [esp + 0x1054]
lea edx, [eax + eax - 1]
mov eax, dword [esp + 0x20]
mov dword [ecx], edx
mov edx, eax
xor ebp, ebp
test edx, edx
je 0x436e5f
jge 0x436e4f
not edx
mov eax, edx
not eax
xor ebp, ebp
test eax, eax
jns 0x436e5e
add eax, eax
inc ebp
test eax, eax
js 0x436e57
dec ebp
xor esi, esi
cmp dword [esp + 0x104c], esi
lea ebx, [esp + 0x38]
jle 0x436eae
mov edi, edi
mov eax, dword [esp + 0x103c]
mov eax, dword [eax + esi*4]
push edi
mov ecx, ebp
mov edx, ebx
call fcn.004367a0
lea eax, [edi*4]
inc esi
add esp, 4
add ebx, eax
cmp esi, dword [esp + 0x104c]
jl 0x436e70
mov eax, dword [esp + 0x1054]
add dword [eax], ebp
pop edi
pop esi
add dword [ecx], ebp
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x1028
ret