Function at 0x436fa0
Capabilities:
Encode data using xor

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov dword [esp + 0x14], ecx
mov esi, dword [esp + 0x2c]
mov dword [esp + 4], 0
mov dword [esp + 8], 0x282b2a25
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ecx, byte [esp + eax + 8]
mov edx, eax
xor edx, 0xe8669847
lea edx, [edx + eax*2]
mov edi, ecx
and edi, edx
mov ebx, edi
and ebx, 2
mov ebp, edi
or edi, 2
imul edi, ebx
xor ebx, 2
and ebp, 0x4d
imul ebp, ebx
add edi, ebp
mov ebx, edi
xor ebx, edx
not edx
and edx, edi
add edx, edx
sub ebx, edx
add bl, cl
add bl, 0x79
mov byte [esp + eax + 8], bl
mov ecx, eax
and ecx, 1
mov edx, eax
and edx, 2
mov edi, eax
xor edi, 1
add edi, eax
mov eax, edi
sub eax, edx
and edi, ecx
or eax, ecx
add eax, edi
cmp eax, 4
jb 0x436fd0
mov edi, dword [esp + 8]
mov eax, dword [0x448e64]
test eax, eax
je 0x437086
xor ecx, ecx
mov edx, dword [0x448e68]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + ecx*8], 0x9abdb589
je 0x437060
inc ecx
cmp eax, ecx
jne 0x437050
jmp 0x437086
mov eax, dword [edx + ecx*8 + 4]
cmp eax, edi
je 0x437086
lea ecx, [esp + 4]
push ecx
push 0
push 0
push 5
push 4
push eax
push dword [0x448e6c]
call fcn.0043a3b0
add esp, 0x1c
mov edi, eax
cmp edi, 0xa9eaeb04
jne 0x4371e7
push dword [esp + 4]
call fcn.00436f00
add esp, 4
mov dword [esp], eax
mov eax, dword [esp + 4]
mov dword [esp + 0x10], eax
mov dword [esp + 0xc], 0x282b2a25
xor edx, edx
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
movzx ebx, byte [esp + edx + 0xc]
mov eax, edx
xor eax, 0xe8669847
lea edi, [eax + edx*2]
mov ecx, ebx
and ecx, edi
mov eax, ecx
and eax, 2
mov ebp, ecx
or ecx, 2
imul ecx, eax
xor eax, 2
and ebp, 0x4d
imul ebp, eax
add ecx, ebp
mov eax, ecx
xor eax, edi
not edi
and edi, ecx
add edi, edi
sub eax, edi
add al, bl
add al, 0x79
mov byte [esp + edx + 0xc], al
mov eax, edx
and eax, 1
mov ecx, edx
and ecx, 2
mov edi, edx
xor edi, 1
add edi, edx
mov edx, edi
sub edx, ecx
and edi, eax
or edx, eax
add edx, edi
cmp edx, 4
jb 0x4370c0
mov edi, dword [esp + 0xc]
mov ecx, dword [0x448e64]
test ecx, ecx
je 0x437178
xor eax, eax
mov edx, dword [0x448e68]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
cmp dword [edx + eax*8], 0x9abdb589
je 0x437150
inc eax
cmp ecx, eax
jne 0x437140
jmp 0x437178
mov ecx, dword [edx + eax*8 + 4]
cmp ecx, edi
je 0x437178
push 0
push dword [esp + 0x14]
mov eax, dword [esp + 8]
push eax
push 5
push 4
push ecx
push dword [0x448e6c]
call fcn.0043a3b0
add esp, 0x1c
mov edi, eax
test edi, edi
js 0x4371dc
mov ecx, dword [esp]
mov eax, dword [ecx]
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
mov edx, dword [ecx + eax + 0x3c]
add ecx, eax
xor eax, eax
nop
nop
nop
nop
nop
nop
nop
nop
movzx edi, word [edx + eax]
movzx ebx, word [esi + eax]
test di, di
je 0x4371b5
add eax, 2
cmp di, bx
je 0x4371a0
cmp di, bx
je 0x4371c7
mov eax, dword [ecx]
test eax, eax
jne 0x437190
mov edi, 0xc0000225
jmp 0x4371dc
mov eax, dword [ecx + 0x44]
mov edx, dword [esp + 0x14]
mov dword [edx + 8], eax
mov eax, dword [ecx + 0xdc]
mov dword [edx + 0xc], eax
xor edi, edi
push dword [esp]
call fcn.00436f60
add esp, 4
mov eax, edi
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret 4