Function at 0x10036680
Capabilities:
Encode data using xor

Disassembly:
push ebx
mov ebx, esp
sub esp, 8
and esp, 0xfffffff8
add esp, 4
push ebp
mov ebp, dword [ebx + 4]
mov dword [esp + 4], ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x1014634e
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
push ebx
sub esp, 0x50
xor eax, eax
mov dword [ebp - 0x20], edx
mov dword [ebp - 0x24], eax
push esi
mov esi, dword [0x101e66ac]
mov dword [ebp - 0x18], eax
mov eax, dword fs:[0x2c]
push edi
mov edi, ecx
mov esi, dword [eax + esi*4]
mov eax, dword [0x101ef2a4]
cmp eax, dword [esi + 4]
jg 0x100368d5
push dword [0x101ef2c4]
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
movaps xmm0, xmmword [0x1017f9b0]
test eax, eax
je 0x1003687f
xorps xmm0, xmmword [0x1017fa10]
lea ecx, [ebp - 0x34]
push ecx
push eax
movups xmmword [ebp - 0x34], xmm0
call dword [sym.imp.KERNEL32.dll_GetProcAddress]
mov ecx, eax
test ecx, ecx
je 0x10036878
mov eax, dword [ecx + 5]
mov eax, dword [eax + ecx + 0xf]
mov edi, dword [eax]
test edi, edi
je 0x10036846
nop word [eax + eax]
mov edx, dword [edi + 4]
xorps xmm0, xmm0
mov eax, edx
mov dword [ebp - 0x2c], 0
movups xmmword [ebp - 0x3c], xmm0
mov dword [ebp - 0x28], 0
lea esi, [eax + 1]
nop dword [eax]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x10036750
sub eax, esi
lea ecx, [ebp - 0x3c]
push eax
push edx
call fcn.10003450
mov eax, dword [ebp - 0x20]
or dword [ebp - 0x18], 1
mov dword [ebp - 0x1c], eax
cmp dword [eax + 0x14], 0xf
mov esi, dword [eax + 0x10]
jbe 0x1003677b
mov eax, dword [eax]
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x2c], esi
lea ecx, [ebp - 0x3c]
mov eax, dword [ebp - 0x3c]
mov edx, esi
cmovb edx, dword [ebp - 0x2c]
cmp dword [ebp - 0x28], 0xf
push esi
push dword [ebp - 0x1c]
cmova ecx, eax
mov dword [ebp - 0x24], eax
call fcn.100073b0
add esp, 8
test eax, eax
jne 0x100367b7
mov eax, dword [edi + 4]
add eax, esi
push eax
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_atoi]
add esp, 4
test eax, eax
jg 0x100367eb
mov edx, dword [edi + 4]
mov esi, edx
lea ecx, [esi + 1]
nop
mov al, byte [esi]
inc esi
test al, al
jne 0x100367c0
mov eax, dword [ebp - 0x20]
sub esi, ecx
mov ecx, eax
cmp dword [eax + 0x14], 0xf
jbe 0x100367d6
mov ecx, dword [eax]
push esi
push edx
mov edx, dword [eax + 0x10]
call fcn.100073b0
add esp, 8
mov byte [ebp - 0x11], 0
test eax, eax
jne 0x100367ef
mov byte [ebp - 0x11], 1
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
test al, 1
je 0x10036835
and eax, 0xfffffffe
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x28]
cmp eax, 0xf
jbe 0x10036835
mov edx, dword [ebp - 0x24]
lea ecx, [eax + 1]
mov eax, edx
cmp ecx, 0x1000
jb 0x1003682b
mov edx, dword [eax - 4]
add ecx, 0x23
sub eax, edx
add eax, 0xfffffffc
cmp eax, 0x1f
ja 0x1003685b
push ecx
push edx
call fcn.1006cb2f
add esp, 8
cmp byte [ebp - 0x11], 0
jne 0x10036861
mov edi, dword [edi + 8]
test edi, edi
jne 0x10036730
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop edi
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
mov eax, dword [edi]
call eax
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
pop esi
mov esp, ebp
pop ebp
mov esp, ebx
pop ebx
ret
movaps xmm0, xmmword [0x1017f9b0]
xorps xmm0, xmmword [0x101800c0]
mov eax, 0x10
mov dword [ebp - 0x49], 0xe1e7e5e2
mov dword [ebp - 0x45], 0xe0e0e5a4
mov dword [ebp - 0x41], 0xf7f7e1f6
mov byte [ebp - 0x3d], 0x84
movups xmmword [ebp - 0x59], xmm0
nop dword [eax + eax]
xor byte [ebp + eax - 0x59], 0x84
inc eax
cmp eax, 0x1d
jb 0x100368b0
lea eax, [ebp - 0x59]
push eax
lea ecx, [ebp - 0x30]
call fcn.100051e0
push 0x10184878
lea eax, [ebp - 0x30]
push eax
call sub.VCRUNTIME140.dll__CxxThrowException
push 0x101ef2a4
call fcn.1006d07f
add esp, 4
cmp dword [0x101ef2a4], 0xffffffff
jne 0x100366de
push 0x101ef2a4
mov dword [0x101ef2c4], edi
call fcn.1006d02e
add esp, 4
jmp 0x100366de