Function at 0x10036785
Capabilities:
Encode data using xor

Disassembly:
mov eax, 0x1005aff0
call fcn.10059860
sub esp, 0x6c
cmp byte [ebp + 0x10], 0
mov eax, edx
push ebx
push esi
push edi
mov edi, ecx
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x2c], edi
je 0x10036805
cmp byte [ebp + 0x1c], 0
je 0x100367e2
mov edx, dword [ebp + 8]
mov dword [edx], 0
cmp dword [edx], 4
jge 0x100367d1
mov esi, dword [ebp + 0x18]
mov ecx, dword [edx]
mov eax, dword [esi]
mov dword [eax + ecx*4], 0xfffffffa
inc dword [edx]
cmp dword [edx], 4
jl 0x100367bf
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret
mov byte [ebp + 0x13], 0
cmp byte [ebp + 0x13], 0
je 0x100367d1
push ecx
push ecx
push 0x4fc0
push ecx
mov edx, 0x2dcb
xor cl, cl
call fcn.10036728
add esp, 0x10
jmp 0x100367d1
mov dword [ebp - 0x28], 0x2b4b
xor ebx, ebx
cmp dword [ebp - 0x28], 0x2c17
jle 0x1003684b
push ebx
call dword [sym.imp.KERNEL32.dll_ClearCommBreak]
mov esi, ebx
mov edi, ebx
mov eax, edi
mov ecx, 0x10075ef8
xor eax, esi
cdq
push edx
push eax
call fcn.10001a90
inc edi
cmp edi, 0x50ea
jl 0x10036822
inc esi
cmp esi, 0x3f3a
jl 0x10036820
mov edi, dword [ebp - 0x2c]
mov eax, dword [ebp - 0x1c]
cmp byte [ebp + 0x14], 0
je 0x10036afb
mov esi, dword [ebp + 0xc]
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x24], esi
mov dword [ebp + 0x10], 0x24a8c6a5
mov dword [ebp + 0x10], ebx
jmp 0x1003687e
push ecx
mov edx, 0x2864
mov ecx, 0x70b9
call fcn.100370da
dec dword [ebp + 0x10]
pop ecx
cmp dword [ebp + 0x10], 0xffffffe3
jg 0x1003686a
mov byte [ebp - 0x11], bl
lea ecx, [ebp - 0x11]
xor dl, dl
call fcn.10035ddb
xor eax, eax
mov dword [ebp - 0x64], 7
mov dword [ebp - 0x68], ebx
mov word [ebp - 0x78], ax
mov dword [ebp - 4], ebx
mov dword [ebp + 0x10], 0xb26bdde0
mov dword [ebp + 0x10], 0x318d5816
mov dword [ebp + 0x10], 0x12
jmp 0x100368f0
lea eax, [ebp - 0x12]
mov dword [ebp - 0x30], 0x23ed15de
mov byte [ebp - 0x12], bl
mov edx, 0x5c9c
push eax
call fcn.10037b83
mov dword [esp], 0x121d
lea edx, [ebp - 0x30]
push 1
push ecx
mov ecx, 0x4551
call fcn.10035e1b
add esp, 0xc
dec dword [ebp + 0x10]
cmp dword [ebp + 0x10], 0xfffffffb
jg 0x100368bb
cmp esi, dword [ebp - 0x1c]
ja 0x1003691d
lea eax, [ebp - 0x78]
cmp edi, eax
je 0x1003690d
push 0xffffffffffffffff
push ebx
push eax
mov ecx, edi
call fcn.10005700
push ebx
push 1
lea ecx, [ebp - 0x78]
call fcn.10005bc7
jmp 0x100367d1
movdqa xmm0, xmmword [0x10068620]
lea eax, [ebp - 0x50]
mov dword [ebp - 0x18], 0x8a61928c
lea ecx, [ebp - 0x40]
mov dword [ebp + 0x10], 0xfffffff7
push dword [ebp + 0x10]
movdqu xmmword [ebp - 0x60], xmm0
push eax
lea eax, [ebp - 0x60]
mov dword [ebp - 0x40], ebx
push eax
push ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
call fcn.10003a4f
mov byte [ebp - 4], 1
mov dword [ebp - 0x2c], 0x76270e7a
mov dword [ebp - 0x28], 1
mov dword [ebp - 0x18], ebx
jmp 0x10036981
push 0x3991
mov edx, 0x3a2c
xor cl, cl
call fcn.10036760
dec dword [ebp - 0x18]
pop ecx
cmp dword [ebp - 0x18], 0xfffffff5
jg 0x1003696c
cmp dword [ebp - 0x18], ebx
jne 0x1003698f
mov eax, dword [ebp - 0x18]
mov eax, dword [ebp - 0x18]
xor ecx, ecx
mov eax, dword [ebp + 0x10]
cmp eax, 0xfffffff9
mov eax, dword [ebp + 0x10]
setg cl
xor edx, edx
cmp ecx, eax
mov eax, dword [ebp - 0x18]
push 0x2efd
setg dl
xor ecx, ecx
cmp edx, eax
mov eax, dword [ebp + 0x10]
push ebx
setg cl
xor edx, edx
cmp eax, ecx
mov eax, dword [ebp - 0x18]
mov ecx, dword [ebp + 0x10]
setg dl
sub edx, eax
mov eax, dword [ebp - 0x40]
imul ecx, edx
mov edx, 0x17e1
mov dword [eax], ecx
lea ecx, [ebp - 0x18]
mov eax, dword [ebp - 0x2c]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp - 0x18]
call fcn.10037468
pop ecx
pop ecx
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], bl
call fcn.10001c28
lea eax, [ebp - 0x20]
xor cl, cl
push eax
lea eax, [ebp - 0x78]
push eax
lea edx, [ebp - 0x24]
call fcn.10039673
mov esi, dword [ebp - 0x24]
pop ecx
pop ecx
jmp 0x10036a30
push ecx
push ecx
lea eax, [ebp - 0x34]
mov dword [ebp - 0x34], 3
push eax
call fcn.10037806
lea eax, [ebp - 0x20]
xor cl, cl
push eax
lea edx, [ebp - 0x78]
call fcn.10036326
add esp, 0x10
cmp dword [ebp - 0x20], esi
jb 0x10036a0d
mov dword [ebp + 0x10], 0x304b
mov dword [ebp - 0x1c], 0xa66e58d0
mov dword [ebp - 0x2c], 0x489be67e
mov eax, dword [ebp + 0x10]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x1c], ebx
jne 0x10036a69
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
neg eax
cmp dword [ebp + 0x10], eax
jg 0x10036a69
mov edx, ebx
jmp 0x10036a6c
xor edx, edx
inc edx
cmp dword [ebp + 0x10], 0xb3b9da4d
sbb eax, eax
xor ecx, ecx
inc eax
cmp eax, edx
setg cl
add ecx, dword [ebp + 0x10]
cmp ecx, 0x3245
jl 0x10036a9d
mov byte [ebp + 0x13], bl
cmp byte [ebp + 0x13], 0
je 0x10036ae5
push ecx
push 1
call fcn.10035abc
pop ecx
pop ecx
jmp 0x10036ae5
mov dword [ebp - 0x2c], 2
mov dword [ebp - 0x28], 0xd1d2a6f9
push 5
pop eax
mov dword [ebp - 0x50], eax
mov dword [ebp - 0x4c], eax
mov dword [ebp - 0x48], eax
mov dword [ebp - 0x44], eax
cmp dword [ebp - 0x2c], ebx
je 0x10036ada
cmp dword [ebp + 0x10], ebx
jne 0x10036aca
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp + 0x10]
mov eax, dword [ebp - 0x4c]
imul eax, dword [ebp - 0x4c]
test eax, eax
je 0x10036ada
xor eax, eax
inc eax
jmp 0x10036adc
mov eax, ebx
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
mov dword [ebp - 0x2c], eax
push ebx
mov edx, 0x3738
mov ecx, 0x3ae
call fcn.10035daa
pop ecx
jmp 0x100368fb
mov byte [ebp + 0x13], bl
cmp byte [ebp + 0x13], 0
je 0x10036b10
mov edx, 0x2fdd
xor cl, cl
call fcn.10035ce0
mov dword [ebp - 4], 6
cmp dword [ebp - 0x28], 0x2b17
jge 0x100367d1
mov edx, str.kkzlfd_ubwcoocvs_pqwfvgd_jsj_ckmggia
mov ecx, 0x10075ef8
call fcn.1000350c
jmp 0x100367d1