Function at 0x436565
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
mov dword [ebp - 4], 0x593ae0
mov ebx, dword [ebp - 4]
push esi
push edi
mov edi, dword [ebp - 4]
add edi, 0x14
cmp byte [ebx + 0x13], 0
je 0x4365c2
mov esi, dword [ebx + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, eax
xor eax, eax
mov dword [ebp - 4], eax
pop ecx
test esi, esi
je 0x4365b9
sub edi, edx
lea ecx, [eax + edx]
and eax, 7
mov al, byte [eax + ebx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
cmp eax, dword [ebx + 0xf]
jb 0x43659e
mov eax, dword [ebx + 0xf]
mov edi, edx
mov byte [edx + eax], 0
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
push edi
call ebx
test eax, eax
jne 0x436c97
mov dword [ebp - 4], 0x593b04
mov eax, dword [ebp - 4]
mov edi, dword [ebp - 4]
add edi, 0x14
mov dword [ebp - 0xc], eax
cmp byte [eax + 0x13], 0
je 0x43663b
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, dword [ebp - 0xc]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
test esi, esi
je 0x436632
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
cmp eax, dword [edx + 0xf]
jb 0x43660e
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call ebx
test eax, eax
jne 0x436c97
mov dword [ebp - 0xc], 0x593b04
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
add edi, 0x14
mov dword [ebp - 4], eax
cmp byte [eax + 0x13], 0
je 0x4366ae
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, dword [ebp - 4]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test esi, esi
je 0x4366a5
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [edx + 0xf]
jb 0x436681
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call ebx
test eax, eax
jne 0x436c97
mov dword [ebp - 0xc], 0x593b28
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
add edi, 0x14
mov dword [ebp - 4], eax
cmp byte [eax + 0x13], 0
je 0x436721
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, dword [ebp - 4]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test esi, esi
je 0x436718
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [edx + 0xf]
jb 0x4366f4
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call ebx
test eax, eax
jne 0x436c97
mov dword [ebp - 0xc], 0x593b4c
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
add edi, 0x14
mov dword [ebp - 4], eax
cmp byte [eax + 0x13], 0
je 0x436794
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, dword [ebp - 4]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test esi, esi
je 0x43678b
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [edx + 0xf]
jb 0x436767
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call ebx
test eax, eax
jne 0x436c97
mov dword [ebp - 0xc], 0x593b70
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
add edi, 0x14
mov dword [ebp - 4], eax
cmp byte [eax + 0x13], 0
je 0x436807
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, dword [ebp - 4]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test esi, esi
je 0x4367fe
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [edx + 0xf]
jb 0x4367da
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call ebx
test eax, eax
jne 0x436c97
mov dword [ebp - 0xc], 0x593b94
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
add edi, 0x14
mov dword [ebp - 4], eax
cmp byte [eax + 0x13], 0
je 0x43687a
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, dword [ebp - 4]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test esi, esi
je 0x436871
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [ecx + edi]
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [edx + 0xf]
jb 0x43684d
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call ebx
test eax, eax
jne 0x436c97
mov dword [ebp - 0xc], 0x593bb8
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
add edi, 0x14
mov dword [ebp - 4], eax
cmp byte [eax + 0x13], 0
je 0x4368ed
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, dword [ebp - 4]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test esi, esi
je 0x4368e4
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [edx + 0xf]
jb 0x4368c0
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call ebx
test eax, eax
jne 0x436c97
mov dword [ebp - 0xc], 0x593bd8
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
add edi, 0x14
mov dword [ebp - 4], eax
cmp byte [eax + 0x13], 0
je 0x436960
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, dword [ebp - 4]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test esi, esi
je 0x436957
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [edx + 0xf]
jb 0x436933
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call ebx
test eax, eax
jne 0x436c97
mov dword [ebp - 0xc], 0x593bf8
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
add edi, 0x14
mov dword [ebp - 4], eax
cmp byte [eax + 0x13], 0
je 0x4369d3
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, dword [ebp - 4]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test esi, esi
je 0x4369ca
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [edx + 0xf]
jb 0x4369a6
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call ebx
test eax, eax
jne 0x436c97
mov dword [ebp - 0xc], 0x593c18
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
add edi, 0x14
mov dword [ebp - 4], eax
cmp byte [eax + 0x13], 0
je 0x436a46
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, dword [ebp - 4]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test esi, esi
je 0x436a3d
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [edx + 0xf]
jb 0x436a19
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call ebx
test eax, eax
jne 0x436c97
mov dword [ebp - 0xc], 0x593c3c
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
add edi, 0x14
mov dword [ebp - 4], eax
cmp byte [eax + 0x13], 0
je 0x436ab9
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, dword [ebp - 4]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test esi, esi
je 0x436ab0
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [edx + 0xf]
jb 0x436a8c
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call ebx
test eax, eax
jne 0x436c97
mov dword [ebp - 0xc], 0x593c5c
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
add edi, 0x14
mov dword [ebp - 4], eax
cmp byte [eax + 0x13], 0
je 0x436b2c
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, dword [ebp - 4]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test esi, esi
je 0x436b23
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [edx + 0xf]
jb 0x436aff
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call ebx
test eax, eax
jne 0x436c97
mov dword [ebp - 0xc], 0x593c80
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
add edi, 0x14
mov dword [ebp - 4], eax
cmp byte [eax + 0x13], 0
je 0x436b9f
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, dword [ebp - 4]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test esi, esi
je 0x436b96
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [edx + 0xf]
jb 0x436b72
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call ebx
test eax, eax
jne 0x436c97
mov dword [ebp - 0xc], 0x593c9c
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
add edi, 0x14
mov dword [ebp - 4], eax
cmp byte [eax + 0x13], 0
je 0x436c12
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, dword [ebp - 4]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test esi, esi
je 0x436c09
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [edx + 0xf]
jb 0x436be5
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call ebx
test eax, eax
jne 0x436c97
mov dword [ebp - 0xc], 0x593cbc
mov eax, dword [ebp - 0xc]
mov edi, dword [ebp - 0xc]
add edi, 0x14
mov dword [ebp - 4], eax
cmp byte [eax + 0x13], 0
je 0x436c81
mov esi, dword [eax + 0xf]
lea eax, [esi + 1]
push eax
call fcn.00565205
mov edx, dword [ebp - 4]
pop ecx
mov ecx, eax
xor eax, eax
mov dword [ebp - 8], ecx
mov dword [ebp - 0xc], eax
test esi, esi
je 0x436c78
mov ebx, ecx
sub edi, ebx
lea ecx, [eax + ebx]
and eax, 7
mov al, byte [eax + edx + 7]
xor al, byte [edi + ecx]
mov byte [ecx], al
mov eax, dword [ebp - 0xc]
inc eax
mov dword [ebp - 0xc], eax
cmp eax, dword [edx + 0xf]
jb 0x436c54
mov ebx, dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 8]
mov eax, dword [edx + 0xf]
mov edi, ecx
mov byte [ecx + eax], 0
push edi
call ebx
pop edi
pop esi
pop ebx
test eax, eax
jne 0x436c97
push 0xa
call dword [sym.imp.KERNEL32.dll_Sleep]
mov esp, ebp
pop ebp
ret
call fcn.00436c9d
int3