Function at 0x5d65c8
Capabilities:
Get system information on windows

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x25
push 0
push 0
dec ecx
jne 0x5d65d0
push ebx
push esi
mov ebx, 0x612408
lea esi, [ebp - 0xa0]
xor eax, eax
push ebp
push 0x5d72a1
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov dword [0x619540], eax
mov eax, 0x619544
call fcn.00407334
mov eax, 0x619548
call fcn.00407334
mov eax, 0x61954c
call fcn.00407334
mov eax, 0x619550
call fcn.00407334
cmp dword [ebx], 0
jne 0x5d6634
mov dl, 1
mov eax, dword [0x43c624]
call fcn.0044b010
mov dword [ebx], eax
mov ecx, 0x612418
mov edx, 0x5d72bc
mov eax, 0x5d72e4
call fcn.005d6530
mov dword [esi], 0x9c
push esi
call dword [0x612418]
test eax, eax
jne 0x5d6663
call fcn.00426e88
jmp 0x5d7278
mov ecx, 0x612410
mov edx, 0x5d730c
mov eax, 0x5d72e4
call fcn.005d6530
cmp dword [0x612410], 0
je 0x5d668f
lea eax, [ebp - 0xc4]
push eax
call dword [0x612410]
jmp 0x5d669b
lea eax, [ebp - 0xc4]
push eax
call sub.kernel32.dll_GetSystemInfo_1
movzx eax, word [ebp - 0xc4]
sub ax, 1
jb 0x5d66de
sub ax, 5
je 0x5d66cd
sub ax, 3
je 0x5d66bc
sub ax, 0xfff6
je 0x5d66ef
jmp 0x5d66fe
mov eax, 0x619550
mov edx, 0x5d7340
call fcn.00407714
jmp 0x5d66fe
mov eax, 0x619550
mov edx, 0x5d735c
call fcn.00407714
jmp 0x5d66fe
mov eax, 0x619550
mov edx, 0x5d73b4
call fcn.00407714
jmp 0x5d66fe
mov eax, 0x619550
mov edx, 0x5d73d0
call fcn.00407714
mov eax, dword [ebx]
mov edx, dword [eax]
call dword [edx + 0x44]
lea eax, [ebp - 0xc8]
push eax
mov eax, 0x5d7408
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
mov eax, dword [esi + 4]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0xc8]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xdc]
push eax
mov eax, 0x5d7450
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
mov eax, dword [esi + 8]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0xdc]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xe0]
push eax
mov eax, 0x5d747c
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
mov eax, dword [esi + 0xc]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0xe0]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xe4]
push eax
mov eax, 0x5d74a4
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
mov eax, dword [esi + 0x10]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0xe4]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xe8]
push eax
mov eax, 0x5d74cc
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
movzx eax, word [esi + 0x94]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0xe8]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xec]
push eax
mov eax, 0x5d74fc
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
movzx eax, word [esi + 0x96]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0xec]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xf0]
push eax
mov eax, 0x5d752c
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
movzx eax, word [esi + 0x98]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0xf0]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xf4]
push eax
mov eax, 0x5d7550
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
movzx eax, byte [esi + 0x9a]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0xf4]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xf8]
push eax
mov eax, 0x5d7578
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
movzx eax, byte [esi + 0x9b]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0xf8]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
xor edx, edx
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0xfc]
push eax
mov eax, 0x5d7598
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
movzx eax, word [ebp - 0xc4]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0xfc]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x100]
push eax
mov eax, 0x5d7578
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
movzx eax, word [ebp - 0xc2]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0x100]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x104]
push eax
mov eax, 0x5d75d4
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
mov eax, dword [ebp - 0xc0]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0x104]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x108]
push eax
mov eax, 0x5d75f8
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
mov eax, dword [ebp - 0xb4]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0x108]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x10c]
push eax
mov eax, 0x5d7630
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
mov eax, dword [ebp - 0xac]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0x10c]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x110]
push eax
mov eax, 0x5d765c
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
mov eax, dword [ebp - 0xa8]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0x110]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x114]
push eax
mov eax, 0x5d7698
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
movzx eax, word [ebp - 0xa4]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0x114]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
lea eax, [ebp - 0x118]
push eax
mov eax, 0x5d76c4
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
movzx eax, word [ebp - 0xa2]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d7434
call fcn.00420ae0
mov edx, dword [ebp - 0x118]
mov eax, dword [ebx]
mov ecx, dword [eax]
call dword [ecx + 0x38]
mov eax, dword [esi + 4]
sub eax, 5
je 0x5d7084
dec eax
jne 0x5d722d
mov ecx, 0x612414
mov edx, 0x5d76f8
mov eax, 0x5d72e4
call fcn.005d6530
lea eax, [ebp - 4]
push eax
push 0
push 0
mov eax, dword [esi + 8]
push eax
mov eax, dword [esi + 4]
push eax
call dword [0x612414]
mov eax, dword [esi + 8]
sub eax, 1
jb 0x5d6c85
je 0x5d6cb0
dec eax
je 0x5d6cdb
jmp 0x5d6d04
cmp byte [esi + 0x9a], 1
jne 0x5d6c9f
mov edx, 0x6010
mov eax, 0x5d7724
call fcn.005d64d4
jmp 0x5d6d04
mov edx, 0x6020
mov eax, 0x5d773c
call fcn.005d64d4
jmp 0x5d6d04
cmp byte [esi + 0x9a], 1
jne 0x5d6cca
mov edx, 0x6110
mov eax, 0x5d7760
call fcn.005d64d4
jmp 0x5d6d04
mov edx, 0x6120
mov eax, 0x5d7770
call fcn.005d64d4
jmp 0x5d6d04
cmp byte [esi + 0x9a], 1
jne 0x5d6cf5
mov edx, 0x6210
mov eax, 0x5d779c
call fcn.005d64d4
jmp 0x5d6d04
mov edx, 0x6220
mov eax, 0x5d77ac
call fcn.005d64d4
mov eax, dword [ebp - 4]
cmp eax, 0x47
ja case.0x5d6d17.0
movzx eax, byte [eax + 0x5d6d1e]
jmp dword [eax*4 + 0x5d6d66]
xor edx, edx
mov eax, 0x5d77d0
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d77f4
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d781c
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7840
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7864
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7888
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d78b0
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d78d8
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7900
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d792c
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7958
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7984
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d79a4
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d79c8
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d79ec
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7a14
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7a3c
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7a64
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7ac0
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7b1c
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7b98
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7c00
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7c7c
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7cc4
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7d20
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7d7c
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7df8
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7e74
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7eb0
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7f08
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7f60
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d7fd8
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d8050
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d809c
call fcn.005d64d4
jmp 0x5d722d
lea eax, [ebp - 0x11c]
push eax
mov eax, 0x5d80e8
mov dword [ebp - 0xd8], eax
mov byte [ebp - 0xd4], 0x11
mov eax, dword [ebp - 4]
mov dword [ebp - 0xd0], eax
mov byte [ebp - 0xcc], 0
lea edx, [ebp - 0xd8]
mov ecx, 1
mov eax, 0x5d811c
call fcn.00420ae0
mov eax, dword [ebp - 0x11c]
xor edx, edx
call fcn.005d64d4
jmp 0x5d722d
mov eax, dword [esi + 8]
sub eax, 1
jb 0x5d709a
je 0x5d7105
dec eax
je 0x5d713f
jmp 0x5d722d
mov edx, 0x5000
mov eax, 0x5d8144
call fcn.005d64d4
cmp byte [esi + 0x9a], 1
jne 0x5d70c3
xor edx, edx
mov eax, 0x5d815c
call fcn.005d64d4
jmp 0x5d722d
movzx eax, word [esi + 0x98]
test al, 0x80
je 0x5d70df
xor edx, edx
mov eax, 0x5d8184
call fcn.005d64d4
jmp 0x5d722d
test al, 2
je 0x5d70f4
xor edx, edx
mov eax, 0x5d81b8
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d81e8
call fcn.005d64d4
jmp 0x5d722d
mov edx, 0x5100
mov eax, 0x5d8204
call fcn.005d64d4
test byte [esi + 0x99], 2
je 0x5d712e
xor edx, edx
mov eax, 0x5d8218
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d815c
call fcn.005d64d4
jmp 0x5d722d
mov eax, dword [0x61240c]
push eax
call sub.user32.dll_GetSystemMetrics
test eax, eax
je 0x5d715f
mov edx, 0x5200
mov eax, 0x5d8240
call fcn.005d64d4
jmp 0x5d71c7
movzx eax, word [esi + 0x98]
cmp ax, 0x2000
jne 0x5d717d
mov edx, 0x5200
mov eax, 0x5d827c
call fcn.005d64d4
jmp 0x5d71c7
cmp ax, 0x8000
jne 0x5d7194
mov edx, 0x5200
mov eax, 0x5d82b0
call fcn.005d64d4
jmp 0x5d71c7
cmp byte [esi + 0x9a], 1
jne 0x5d71b8
cmp word [ebp - 0xc4], 9
jne 0x5d71b8
mov edx, 0x5100
mov eax, 0x5d82d4
call fcn.005d64d4
jmp 0x5d71c7
mov edx, 0x5200
mov eax, 0x5d8318
call fcn.005d64d4
cmp byte [esi + 0x9a], 1
je 0x5d722d
movzx eax, word [esi + 0x98]
test ah, 0x40
je 0x5d71ea
xor edx, edx
mov eax, 0x5d833c
call fcn.005d64d4
jmp 0x5d722d
test al, 0x80
je 0x5d71fc
xor edx, edx
mov eax, 0x5d837c
call fcn.005d64d4
jmp 0x5d722d
test al, 2
je 0x5d720e
xor edx, edx
mov eax, 0x5d83b0
call fcn.005d64d4
jmp 0x5d722d
test ah, 4
je 0x5d7221
xor edx, edx
mov eax, 0x5d83e4
call fcn.005d64d4
jmp 0x5d722d
xor edx, edx
mov eax, 0x5d840c
call fcn.005d64d4
mov eax, 0x619548
lea edx, [esi + 0x14]
mov ecx, 0x80
call fcn.004080d4
lea eax, [ebp - 0x120]
push eax
mov eax, dword [esi + 0xc]
mov dword [ebp - 0x128], eax
mov byte [ebp - 0x124], 0
lea edx, [ebp - 0x128]
xor ecx, ecx
mov eax, 0x5d843c
call fcn.00420ae0
mov edx, dword [ebp - 0x120]
mov eax, 0x61954c
call fcn.00407714
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5d72a8
lea eax, [ebp - 0x120]
mov edx, 0x12
call fcn.00407394
lea eax, [ebp - 0xc8]
call fcn.00407334
ret