Function at 0x50dfcc
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffe90
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0x160], ebx
mov dword [ebp - 0x15c], ebx
mov dword [ebp - 0x158], ebx
mov dword [ebp - 4], ebx
mov esi, eax
lea edi, [ebp - 0x130]
push ecx
mov ecx, 0x47
rep movsd dword es:[edi], dword [esi]
pop ecx
mov dword [ebp - 0xc], ecx
mov dword [ebp - 8], edx
xor eax, eax
push ebp
push 0x50ec38
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
xor edx, edx
call fcn.0040625c
mov eax, dword [ebp - 8]
xor edx, edx
call fcn.0040625c
mov eax, dword [ebp - 0xc]
xor edx, edx
call fcn.0040625c
mov eax, dword [ebp - 0x120]
dec eax
je 0x50eafc
dec eax
jne 0x50ebc4
mov ebx, dword [ebp - 0x12c]
cmp ebx, 0xa
jne 0x50e063
mov eax, dword [ebp - 8]
mov edx, 0x50ec54
call fcn.0040625c
jmp 0x50ebc4
cmp ebx, 6
jne 0x50e5c1
mov esi, dword [ebp - 0x128]
mov eax, esi
sub eax, 1
jb 0x50e080
je 0x50e0a4
dec eax
je 0x50e0c8
jmp 0x50e0db
cmp byte [ebp - 0x16], 1
jne 0x50e095
mov eax, dword [ebp - 8]
mov edx, 0x50ec78
call fcn.0040625c
jmp 0x50e0db
mov eax, dword [ebp - 8]
mov edx, 0x50eca0
call fcn.0040625c
jmp 0x50e0db
cmp byte [ebp - 0x16], 1
jne 0x50e0b9
mov eax, dword [ebp - 8]
mov edx, 0x50ecd4
call fcn.0040625c
jmp 0x50e0db
mov eax, dword [ebp - 8]
mov edx, 0x50ecf4
call fcn.0040625c
jmp 0x50e0db
cmp byte [ebp - 0x16], 1
jne 0x50e0db
mov eax, dword [ebp - 8]
mov edx, 0x50ed30
call fcn.0040625c
xor eax, eax
mov dword [ebp - 0x10], eax
movzx eax, word [ebp - 0x1a]
push eax
lea eax, [ebp - 0x10]
push eax
movzx ecx, word [ebp - 0x1c]
mov edx, esi
mov eax, ebx
call fcn.0050deb4
test eax, eax
je case.0x50e10a.19
mov eax, dword [ebp - 0x10]
cmp eax, 0x47
ja case.0x50e10a.19
jmp dword [eax*4 + 0x50e111]
mov eax, dword [ebp - 0xc]
mov edx, 0x50ed50
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50ed70
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50ed94
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50edb8
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50ede4
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50ee10
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50ee5c
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50eea8
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50eecc
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50eef4
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50ef1c
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50ef48
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50ef74
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50efc0
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f018
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f064
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f088
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f0b0
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f0d8
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f100
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f12c
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f158
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f198
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f20c
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f280
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f2f0
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f318
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f344
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f370
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f3c4
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f440
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f470
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f4b8
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f4e0
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f508
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f550
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f598
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f5b4
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f5d4
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f5f4
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f634
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f670
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f6ac
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f6ec
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f720
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f740
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f764
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f788
call fcn.0040625c
jmp case.0x50e10a.19
mov eax, dword [ebp - 0xc]
mov edx, 0x50f7b4
call fcn.0040625c
mov eax, dword [0x5391a0]
cmp byte [eax], 0
je 0x50ebc4
mov eax, dword [ebp - 0xc]
cmp dword [eax], 0
je 0x50e5ac
mov eax, dword [ebp - 0xc]
mov edx, 0x50f7e0
call fcn.00406670
mov eax, dword [ebp - 0xc]
mov eax, dword [ebp - 0xc]
mov edx, 0x50f7f0
call fcn.00406670
mov eax, dword [ebp - 0xc]
jmp 0x50ebc4
cmp dword [ebp - 0x12c], 5
jne 0x50e7c4
cmp dword [ebp - 0x128], 2
jne 0x50e7c4
cmp byte [ebp - 0x16], 1
jne 0x50e5fd
mov eax, dword [ebp - 8]
mov edx, 0x50f804
call fcn.0040625c
mov eax, dword [ebp - 0xc]
mov edx, 0x50f828
call fcn.0040625c
jmp 0x50e65e
push 0x59
call sub.user32.dll_GetSystemMetrics
test eax, eax
jle 0x50e617
mov eax, dword [ebp - 8]
mov edx, 0x50f858
call fcn.0040625c
jmp 0x50e65e
movzx eax, word [ebp - 0x18]
mov edx, eax
and dx, 0x2000
cmp dx, 0x2000
jne 0x50e638
mov eax, dword [ebp - 8]
mov edx, 0x50f894
call fcn.0040625c
jmp 0x50e65e
and ax, 0x8000
cmp ax, 0x8000
jne 0x50e651
mov eax, dword [ebp - 8]
mov edx, 0x50f8d8
call fcn.0040625c
jmp 0x50e65e
mov eax, dword [ebp - 8]
mov edx, 0x50f90c
call fcn.0040625c
mov eax, dword [0x5391a0]
cmp byte [eax], 0
je 0x50e675
lea eax, [ebp - 0x154]
call fcn.0050df4c
jmp 0x50e681
lea eax, [ebp - 0x154]
push eax
call sub.kernel32.dll_GetSystemInfo_1
cmp byte [ebp - 0x16], 1
je 0x50ebc4
movzx eax, word [ebp - 0x154]
cmp ax, 6
jne 0x50e6dc
movzx eax, word [ebp - 0x18]
mov edx, eax
and dx, 0x80
cmp dx, 0x80
jne 0x50e6bc
mov eax, dword [ebp - 0xc]
mov edx, 0x50f940
call fcn.0040625c
jmp 0x50ebc4
and ax, 2
cmp ax, 2
jne 0x50ebc4
mov eax, dword [ebp - 0xc]
mov edx, 0x50efc0
call fcn.0040625c
jmp 0x50ebc4
cmp ax, 9
jne 0x50e734
movzx eax, word [ebp - 0x18]
mov edx, eax
and dx, 0x80
cmp dx, 0x80
jne 0x50e706
mov eax, dword [ebp - 0xc]
mov edx, 0x50f998
call fcn.0040625c
jmp 0x50ebc4
and ax, 2
cmp ax, 2
jne 0x50e722
mov eax, dword [ebp - 0xc]
mov edx, 0x50f9c4
call fcn.0040625c
jmp 0x50ebc4
mov eax, dword [ebp - 0xc]
mov edx, 0x50f9f0
call fcn.0040625c
jmp 0x50ebc4
movzx eax, word [ebp - 0x18]
mov edx, eax
and dx, 0x4000
cmp dx, 0x4000
jne 0x50e758
mov eax, dword [ebp - 0xc]
mov edx, 0x50fa18
call fcn.0040625c
jmp 0x50ebc4
mov edx, eax
and dx, 0x80
cmp dx, 0x80
jne 0x50e778
mov eax, dword [ebp - 0xc]
mov edx, 0x50fa44
call fcn.0040625c
jmp 0x50ebc4
mov edx, eax
and dx, 2
cmp dx, 2
jne 0x50e796
mov eax, dword [ebp - 0xc]
mov edx, 0x50eea8
call fcn.0040625c
jmp 0x50ebc4
and ax, 0x400
cmp ax, 0x400
jne 0x50e7b2
mov eax, dword [ebp - 0xc]
mov edx, 0x50fa68
call fcn.0040625c
jmp 0x50ebc4
mov eax, dword [ebp - 0xc]
mov edx, 0x50fa7c
call fcn.0040625c
jmp 0x50ebc4
cmp dword [ebp - 0x12c], 5
jne 0x50e879
cmp dword [ebp - 0x128], 1
jne 0x50e879
mov eax, dword [ebp - 8]
mov edx, 0x50f804
call fcn.0040625c
movzx eax, word [ebp - 0x18]
and ax, 0x200
cmp ax, 0x200
jne 0x50e808
mov eax, dword [ebp - 0xc]
mov edx, 0x50fa9c
call fcn.0040625c
jmp 0x50e815
mov eax, dword [ebp - 0xc]
mov edx, 0x50f2f0
call fcn.0040625c
push 0x58
call sub.user32.dll_GetSystemMetrics
test eax, eax
jle 0x50e835
mov eax, dword [ebp - 0xc]
mov edx, 0x50fab4
call fcn.00406670
mov eax, dword [ebp - 0xc]
jmp 0x50ebc4
push 0x56
call sub.user32.dll_GetSystemMetrics
test eax, eax
jle 0x50e855
mov eax, dword [ebp - 0xc]
mov edx, 0x50fad4
call fcn.00406670
mov eax, dword [ebp - 0xc]
jmp 0x50ebc4
push 0x57
call sub.user32.dll_GetSystemMetrics
test eax, eax
jle 0x50ebc4
mov eax, dword [ebp - 0xc]
mov edx, 0x50faf8
call fcn.00406670
mov eax, dword [ebp - 0xc]
jmp 0x50ebc4
mov eax, dword [ebp - 0x12c]
cmp eax, 5
jne 0x50e908
cmp dword [ebp - 0x128], 0
jne 0x50e908
mov eax, dword [ebp - 8]
mov edx, 0x50fb20
call fcn.0040625c
cmp byte [ebp - 0x16], 1
jne 0x50e8b6
mov eax, dword [ebp - 0xc]
mov edx, 0x50f2f0
call fcn.0040625c
jmp 0x50ebc4
movzx eax, word [ebp - 0x18]
mov edx, eax
and dx, 0x80
cmp dx, 0x80
jne 0x50e8da
mov eax, dword [ebp - 0xc]
mov edx, 0x50fb48
call fcn.0040625c
jmp 0x50ebc4
and ax, 2
cmp ax, 2
jne 0x50e8f6
mov eax, dword [ebp - 0xc]
mov edx, 0x50fb78
call fcn.0040625c
jmp 0x50ebc4
mov eax, dword [ebp - 0xc]
mov edx, 0x50fba4
call fcn.0040625c
jmp 0x50ebc4
cmp eax, 4
jne 0x50ebc4
mov eax, dword [ebp - 8]
mov edx, 0x50fbc0
call fcn.0040625c
cmp byte [ebp - 0x16], 1
jne 0x50e933
mov eax, dword [ebp - 0xc]
mov edx, 0x50fbe8
call fcn.0040625c
jmp 0x50e95d
movzx eax, word [ebp - 0x18]
and ax, 2
cmp ax, 2
jne 0x50e950
mov eax, dword [ebp - 0xc]
mov edx, 0x50fc0c
call fcn.0040625c
jmp 0x50e95d
mov eax, dword [ebp - 0xc]
mov edx, 0x50fc48
call fcn.0040625c
lea eax, [ebp - 4]
xor edx, edx
call fcn.004062b0
call fcn.0050b8a4
mov dword [ebp - 0x14], eax
xor eax, eax
push ebp
push 0x50eaf5
push dword fs:[eax]
mov dword fs:[eax], esp
mov edx, 0x80000002
mov eax, dword [ebp - 0x14]
call fcn.004317c8
xor ecx, ecx
mov edx, 0x50fc6c
mov eax, dword [ebp - 0x14]
call fcn.0043182c
test al, al
je 0x50ea28
mov edx, 0x50fcd8
mov eax, dword [ebp - 0x14]
call fcn.00431e98
test al, al
je 0x50e9c2
lea ecx, [ebp - 4]
mov edx, 0x50fcd8
mov eax, dword [ebp - 0x14]
call fcn.00431cf8
mov eax, dword [ebp - 0x14]
call fcn.00431798
mov edx, 0x50fcfc
mov eax, dword [ebp - 4]
call fcn.0040c6bc
test al, al
je 0x50e9ea
mov eax, dword [ebp - 0xc]
mov edx, 0x50fbe8
call fcn.0040625c
jmp 0x50ea28
mov edx, 0x50fd14
mov eax, dword [ebp - 4]
call fcn.0040c6bc
test al, al
je 0x50ea0a
mov eax, dword [ebp - 0xc]
mov edx, 0x50fba4
call fcn.0040625c
jmp 0x50ea28
mov edx, 0x50fd34
mov eax, dword [ebp - 4]
call fcn.0040c6bc
test al, al
je 0x50ea28
mov eax, dword [ebp - 0xc]
mov edx, 0x50fb78
call fcn.0040625c
xor ecx, ecx
mov edx, 0x50fd54
mov eax, dword [ebp - 0x14]
call fcn.0043182c
test al, al
je 0x50eadf
mov edx, 0x50fdd8
mov eax, dword [ebp - 0x14]
call fcn.00431e98
test al, al
je 0x50eadf
mov edx, 0x50fdd8
mov eax, dword [ebp - 0x14]
call fcn.00431cd0
dec al
je 0x50ea6b
sub al, 2
je 0x50ea8f
jmp 0x50eaa0
lea ecx, [ebp - 0x158]
mov edx, 0x50fdd8
mov eax, dword [ebp - 0x14]
call fcn.00431cf8
mov eax, dword [ebp - 0x158]
xor edx, edx
call fcn.0040cfe8
mov ebx, eax
jmp 0x50eaa2
mov edx, 0x50fdd8
mov eax, dword [ebp - 0x14]
call fcn.00431d78
mov ebx, eax
jmp 0x50eaa2
xor ebx, ebx
dec ebx
jne 0x50eadf
lea eax, [ebp - 0x15c]
lea edx, [ebp - 0x11c]
mov ecx, 0x80
call fcn.0040645c
mov eax, dword [ebp - 0x15c]
mov edx, 0x50fdf8
call fcn.0040c6bc
test al, al
je 0x50eadf
lea eax, [ebp - 0x11c]
mov edx, 0x50fe24
call fcn.0040db04
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50ebc4
mov eax, dword [ebp - 0x14]
call fcn.004044a0
ret
cmp dword [ebp - 0x12c], 4
jne 0x50eb64
cmp dword [ebp - 0x128], 0
jne 0x50eb64
mov eax, dword [ebp - 8]
mov edx, 0x50fe50
call fcn.0040625c
movzx eax, word [ebp - 0x11a]
sub ax, 0x41
je 0x50eb37
dec ax
je 0x50eb46
dec ax
je 0x50eb55
jmp 0x50ebc4
mov eax, dword [ebp - 0xc]
mov edx, 0x50fe74
call fcn.0040625c
jmp 0x50ebc4
mov eax, dword [ebp - 0xc]
mov edx, 0x50fe8c
call fcn.0040625c
jmp 0x50ebc4
mov eax, dword [ebp - 0xc]
mov edx, 0x50fea4
call fcn.0040625c
jmp 0x50ebc4
cmp dword [ebp - 0x12c], 4
jne 0x50eba5
cmp dword [ebp - 0x128], 0xa
jne 0x50eba5
mov eax, dword [ebp - 8]
mov edx, 0x50fec0
call fcn.0040625c
movzx eax, word [ebp - 0x11a]
cmp ax, 0x41
je 0x50eb96
cmp ax, 0x42
jne 0x50ebc4
mov eax, dword [ebp - 0xc]
mov edx, 0x50fee4
call fcn.0040625c
jmp 0x50ebc4
cmp dword [ebp - 0x12c], 4
jne 0x50ebc4
cmp dword [ebp - 0x128], 0x5a
jne 0x50ebc4
mov eax, dword [ebp - 8]
mov edx, 0x50fef8
call fcn.0040625c
lea eax, [ebp - 0x160]
push eax
mov eax, dword [ebp - 8]
mov eax, dword [eax]
mov dword [ebp - 0x170], eax
mov byte [ebp - 0x16c], 0x11
mov eax, dword [ebp - 0xc]
mov eax, dword [eax]
mov dword [ebp - 0x168], eax
mov byte [ebp - 0x164], 0x11
lea edx, [ebp - 0x170]
mov ecx, 1
mov eax, 0x50ff3c
call fcn.0040e2d4
mov eax, dword [ebp - 0x160]
mov edx, dword [ebp + 8]
call fcn.0040c8cc
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x50ec3f
lea eax, [ebp - 0x160]
mov edx, 3
call fcn.00406254
lea eax, [ebp - 4]
call fcn.0040624c
ret