Function at 0x403620
Capabilities:
Contain obfuscated stackstrings
Reference processor manufacturer constants

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x94
mov eax, dword [0x504628]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
mov eax, 1
cpuid
push esi
lea esi, [ebp - 0x30]
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
mov eax, dword [ebp - 0x28]
sar eax, 0x1f
push edi
test al, 1
je 0x4036d2
xor eax, eax
mov dword [ebp - 0x2c], eax
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], eax
mov eax, 0x40000000
cpuid
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
cmp dword [ebp - 0x2c], 0x7263694d
jne 0x4036bf
cmp dword [ebp - 0x28], 0x666f736f
jne 0x4036bf
cmp dword [ebp - 0x24], 0x76482074
jne 0x4036bf
mov eax, 0x40000003
cpuid
mov dword [ebp - 0x2c], 0
mov dword [esi], eax
mov dword [esi + 4], ebx
mov dword [esi + 8], ecx
mov dword [esi + 0xc], edx
test byte [ebp - 0x2c], 1
je 0x4036bf
xor al, al
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045a0a2
mov esp, ebp
pop ebp
ret
mov al, 1
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.0045a0a2
mov esp, ebp
pop ebp
ret
lea ecx, [ebp - 0x30]
mov ebx, 0x65
push ecx
mov byte [ebp - 0x30], 0x6b
mov byte [ebp - 0x2f], bl
mov byte [ebp - 0x2e], 0x72
mov byte [ebp - 0x2d], 0x6e
mov byte [ebp - 0x2c], bl
mov byte [ebp - 0x2b], 0x6c
mov byte [ebp - 0x2a], 0x33
mov byte [ebp - 0x29], 0x32
mov byte [ebp - 0x28], 0x2e
mov byte [ebp - 0x27], 0x64
mov byte [ebp - 0x26], 0x6c
mov byte [ebp - 0x25], 0x6c
mov byte [ebp - 0x24], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
lea edx, [ebp - 0x20]
mov esi, eax
push edx
push esi
mov byte [ebp - 0x6d], 0
mov byte [ebp - 0x20], 0x45
mov byte [ebp - 0x1f], 0x6e
mov byte [ebp - 0x1e], 0x75
mov byte [ebp - 0x1d], 0x6d
mov byte [ebp - 0x1c], 0x53
mov byte [ebp - 0x1b], 0x79
mov byte [ebp - 0x1a], 0x73
mov byte [ebp - 0x19], 0x74
mov byte [ebp - 0x18], bl
mov byte [ebp - 0x17], 0x6d
mov byte [ebp - 0x16], 0x46
mov byte [ebp - 0x15], 0x69
mov byte [ebp - 0x14], 0x72
mov byte [ebp - 0x13], 0x6d
mov byte [ebp - 0x12], 0x77
mov byte [ebp - 0x11], 0x61
mov byte [ebp - 0x10], 0x72
mov byte [ebp - 0xf], bl
mov byte [ebp - 0xe], 0x54
mov byte [ebp - 0xd], 0x61
mov byte [ebp - 0xc], 0x62
mov byte [ebp - 0xb], 0x6c
mov byte [ebp - 0xa], bl
mov byte [ebp - 9], 0x73
mov byte [ebp - 8], 0
call fcn.004032a0
mov edi, eax
lea eax, [ebp - 0x20]
push eax
push esi
mov byte [ebp - 0x20], 0x47
mov byte [ebp - 0x1f], bl
mov byte [ebp - 0x1e], 0x74
mov byte [ebp - 0x1d], 0x53
mov byte [ebp - 0x1c], 0x79
mov byte [ebp - 0x1b], 0x73
mov byte [ebp - 0x1a], 0x74
mov byte [ebp - 0x19], bl
mov byte [ebp - 0x18], 0x6d
mov byte [ebp - 0x17], 0x46
mov byte [ebp - 0x16], 0x69
mov byte [ebp - 0x15], 0x72
mov byte [ebp - 0x14], 0x6d
mov byte [ebp - 0x13], 0x77
mov byte [ebp - 0x12], 0x61
mov byte [ebp - 0x11], 0x72
mov byte [ebp - 0x10], bl
mov byte [ebp - 0xf], 0x54
mov byte [ebp - 0xe], 0x61
mov byte [ebp - 0xd], 0x62
mov byte [ebp - 0xc], 0x6c
mov byte [ebp - 0xb], bl
mov byte [ebp - 0xa], 0
call fcn.004032a0
xor esi, esi
add esp, 0x10
mov dword [ebp - 0x7c], eax
cmp edi, esi
je 0x4038b6
cmp eax, esi
je 0x4038b6
push esi
push esi
push 0x4649524d
call edi
mov dword [ebp - 0x78], eax
cmp eax, esi
je 0x403a43
mov esi, eax
shr esi, 2
xor ecx, ecx
mov eax, esi
mov edx, 4
mul edx
seto cl
mov dword [ebp - 0x80], esi
neg ecx
or ecx, eax
push ecx
call fcn.0043ca0c
mov ecx, dword [ebp - 0x78]
add esp, 4
push ecx
push eax
push 0x4649524d
mov dword [ebp - 0x74], eax
call edi
xor edi, edi
test esi, esi
jbe 0x4038a5
mov edx, dword [ebp - 0x74]
mov eax, dword [edx + edi*4]
push 0
push 0
push eax
push 0x4649524d
call dword [ebp - 0x7c]
mov esi, eax
test esi, esi
je 0x40389f
push esi
call fcn.0043ca0c
mov ecx, dword [ebp - 0x74]
mov edx, dword [ecx + edi*4]
add esp, 4
push esi
push eax
push edx
push 0x4649524d
mov dword [ebp - 0x78], eax
call dword [ebp - 0x7c]
mov ecx, dword [ebp - 0x78]
push esi
call fcn.00403520
add esp, 4
test al, al
je 0x403896
mov byte [ebp - 0x6d], 1
push ecx
call fcn.0043ca01
add esp, 4
inc edi
cmp edi, dword [ebp - 0x80]
jb 0x40384c
mov eax, dword [ebp - 0x74]
push eax
call fcn.0043ca01
add esp, 4
jmp 0x403a39
mov ecx, 0x5c
mov word [ebp - 0x6c], cx
mov edx, 0x64
mov word [ebp - 0x6a], dx
mov ecx, 0x76
mov word [ebp - 0x66], cx
mov edx, 0x69
mov word [ebp - 0x64], dx
mov ecx, ebx
mov word [ebp - 0x60], cx
mov edx, 0x5c
mov word [ebp - 0x5e], dx
mov eax, ebx
mov word [ebp - 0x68], ax
mov ecx, 0x68
mov word [ebp - 0x5a], cx
mov edx, 0x79
mov word [ebp - 0x58], dx
mov eax, 0x63
mov word [ebp - 0x62], ax
mov ecx, 0x69
mov word [ebp - 0x54], cx
mov edx, 0x63
mov word [ebp - 0x52], dx
mov eax, 0x70
mov word [ebp - 0x5c], ax
mov ecx, 0x6c
mov word [ebp - 0x4e], cx
mov edx, 0x6d
mov ecx, edx
mov eax, 0x73
mov word [ebp - 0x56], ax
mov word [ebp - 0x4c], dx
mov word [ebp - 0x48], cx
mov eax, 0x61
mov word [ebp - 0x50], ax
mov ecx, 0x79
mov edx, 0x6f
mov word [ebp - 0x46], dx
mov word [ebp - 0x42], cx
mov eax, ebx
mov word [ebp - 0x4a], ax
xor edx, edx
mov ecx, 0x2c
mov eax, 0x72
mov word [ebp - 0x40], dx
mov word [ebp - 0x84], cx
mov word [ebp - 0x44], ax
lea ecx, [ebp - 0x20]
mov edx, 0x2e
push ecx
lea eax, [ebp - 0x6c]
mov word [ebp - 0x82], dx
mov dword [ebp - 0x80], eax
push 4
lea edx, [ebp - 0x74]
lea eax, [ebp - 0x84]
push edx
mov dword [ebp - 0x74], esi
mov dword [ebp - 0x20], 0x18
mov dword [ebp - 0x1c], esi
mov dword [ebp - 0x14], 0x40
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], esi
mov dword [ebp - 0xc], esi
call dword [0x50fdbc]
test eax, eax
jl 0x403a43
push 2
push esi
push 1
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp - 0x74]
lea ecx, [ebp - 0x90]
push ecx
push 0x10000
push esi
lea edx, [ebp - 0x78]
push edx
push 0xffffffffffffffff
push eax
mov dword [ebp - 0x78], esi
mov dword [ebp - 0x7c], 0x10000
mov dword [ebp - 0x90], 0xc0000
mov dword [ebp - 0x8c], esi
call dword [0x50fdc0]
test eax, eax
jl 0x403a2f
mov ecx, dword [ebp - 0x7c]
push ecx
mov ecx, dword [ebp - 0x78]
call fcn.00403520
add esp, 4
test al, al
je 0x403a26
mov byte [ebp - 0x6d], 1
push ecx
push 0xffffffffffffffff
call dword [0x50fd88]
mov edx, dword [ebp - 0x74]
push edx
call dword [0x50fdc4]
cmp byte [ebp - 0x6d], 0
jne 0x4036bf
lea eax, [ebp - 0x3c]
push eax
mov byte [ebp - 0x3c], 0x73
mov byte [ebp - 0x3b], 0x62
mov byte [ebp - 0x3a], 0x69
mov byte [ebp - 0x39], bl
mov byte [ebp - 0x38], 0x64
mov byte [ebp - 0x37], 0x6c
mov byte [ebp - 0x36], 0x6c
mov byte [ebp - 0x35], 0x2e
mov byte [ebp - 0x34], 0x64
mov byte [ebp - 0x33], 0x6c
mov byte [ebp - 0x32], 0x6c
mov byte [ebp - 0x31], 0
call dword [sym.imp.KERNEL32.dll_GetModuleHandleA]
mov ecx, dword [ebp - 4]
test eax, eax
pop edi
setne al
pop esi
xor ecx, ebp
pop ebx
call fcn.0045a0a2
mov esp, ebp
pop ebp
ret