Function at 0x401190
Capabilities:
Encode data using xor

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x428486
mov eax, dword fs:[0]
push eax
sub esp, 0x104
push ebx
push esi
push edi
mov eax, dword [0x43a810]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov dword [ebp - 0x14], edx
sub esp, 0xc
push ecx
lea ecx, [ebp - 0xf8]
call fcn.00401c90
mov dword [ebp - 4], 0
mov eax, dword [ebp - 0xf8]
mov eax, dword [eax + 4]
mov eax, dword [ebp + eax - 0xec]
test al, 6
jne 0x4014db
shr eax, 2
test al, 1
jne 0x4014db
mov esi, dword [sym.imp.USER32.dll_IsCharLowerA]
push 0x41
call esi
mov edi, dword [sym.imp.USER32.dll_IsCharUpperA]
push 0x42
call edi
push 0x41
call esi
mov eax, dword [ebp - 0xf8]
lea ecx, [ebp - 0xf8]
mov eax, dword [eax + 4]
add ecx, eax
push 0
push dword [ecx + 0xc]
mov dword [ecx + 0x10], 7
call fcn.00404c70
push 0x42
call edi
push 0x14
mov byte [ebp - 4], 1
call fcn.0040e7be
push 0xffffffffffffffff
mov esi, eax
push 0xfffffffffffffff0
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0x28], esi
call fcn.00401a00
lea ecx, [ebp - 0xf8]
call fcn.00401000
cmp eax, 0x21ce7d15
jne 0x40144f
cmp edx, 0x15ee2a3
jne 0x40144f
lea ecx, [ebp - 0xf8]
call fcn.00401000
push 0
push 8
mov ebx, edx
mov edi, eax
push ebx
push edi
call fcn.00426000
mov ecx, eax
or ecx, edx
je 0x4012ac
mov ecx, 8
sub ecx, eax
mov eax, 0
sbb eax, edx
mov dword [ebp - 0x1c], eax
jmp 0x4012b7
xorps xmm0, xmm0
movlpd qword [ebp - 0x20], xmm0
mov ecx, dword [ebp - 0x20]
mov eax, 0xffffffe8
sub eax, edi
sub eax, ecx
push ecx
cdq
push edx
push eax
lea ecx, [ebp - 0xf8]
call fcn.00401a00
lea ecx, [ebp - 0xf8]
call fcn.00401000
cmp eax, 0xc3c9f371
jne 0x4013ba
cmp edx, 0x4f0
jne 0x4013ba
lea ecx, [ebp - 0xf8]
call fcn.00401090
push eax
mov dword [ebp - 0x2c], eax
call fcn.0040d0d1
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x2c]
cdq
mov ecx, eax
add esp, 4
mov eax, edx
push eax
push ecx
push dword [ebp - 0x24]
mov dword [ebp - 0x30], ecx
lea ecx, [ebp - 0xf8]
mov dword [ebp - 0x1c], eax
call fcn.004018d0
mov ecx, 0xfffffffc
sub ecx, dword [ebp - 0x30]
mov eax, 0xffffffff
sbb eax, dword [ebp - 0x1c]
add edi, ecx
adc ebx, eax
js 0x401378
jg 0x401349
cmp edi, 0x10000
jbe 0x401378
test esi, esi
je 0x401356
push esi
call fcn.0040df10
add esp, 4
lea ecx, [ebp - 0xf8]
call fcn.004010d0
mov eax, 0xfffffffc
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push ebx
push edi
push dword [ebp - 0x14]
lea ecx, [ebp - 0xf8]
call fcn.004018d0
xor ecx, ecx
test ebx, ebx
jl 0x4013ef
jg 0x401394
test edi, edi
je 0x4013ef
mov eax, ecx
cdq
idiv dword [ebp - 0x2c]
mov esi, dword [ebp - 0x24]
inc ecx
mov al, byte [edx + esi]
mov edx, dword [ebp - 0x14]
mov esi, dword [ebp - 0x28]
xor byte [ecx + edx - 1], al
mov eax, ecx
cdq
cmp edx, ebx
jl 0x401394
jg 0x4013ef
cmp eax, edi
jb 0x401394
jmp 0x4013ef
cmp eax, 0x70827739
jne 0x401420
cmp edx, 0x11f
jne 0x401420
test ebx, ebx
jl 0x4013df
jg 0x401349
cmp edi, 0x10000
ja 0x401349
push ebx
push edi
push dword [ebp - 0x14]
lea ecx, [ebp - 0xf8]
call fcn.004018d0
mov eax, dword [ebp + 0xc]
mov dword [eax], edi
test esi, esi
je 0x401401
push esi
call fcn.0040df10
add esp, 4
lea ecx, [ebp - 0xf8]
call fcn.004010d0
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x40142d
push esi
call fcn.0040df10
add esp, 4
lea ecx, [ebp - 0xf8]
call fcn.004010d0
mov eax, 0xfffffffd
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
test esi, esi
je 0x40145c
push esi
call fcn.0040df10
add esp, 4
lea ecx, [ebp - 0xf8]
call fcn.004010d0
mov eax, 0xfffffffe
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, 0x42e68c
call fcn.0040bac0
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x1c]
push eax
lea ecx, [ebp - 0x3c]
call fcn.0040df7f
push 0x437f04
lea eax, [ebp - 0x3c]
push eax
mov dword [ebp - 0x3c], vtable.std::runtime_error.0
call fcn.0041036b
int3