Function at 0x4d2b00
Capabilities:
Get system information on windows

Disassembly:
push 0xffffffffffffffff
push 0x549e7e
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x595c60]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x595c60]
xor eax, esp
push eax
lea eax, [esp + 0x78]
mov dword fs:[0], eax
mov esi, ecx
lea ecx, [esp + 0x5c]
mov dword [esp + 0x80], 1
call fcn.004d0910
lea eax, [esp + 0x5c]
mov byte [esp + 0x80], 2
push eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x9c]
call fcn.00501530
mov byte [esp + 0x80], 3
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], 0
test eax, eax
je 0x4d2b8d
mov ecx, dword [eax]
lea edx, [esp + 0x28]
push edx
push eax
call dword [ecx + 0x20]
mov eax, dword [esp + 0x18]
xor ecx, ecx
mov dword [esp + 0x14], ecx
cmp dword [esp + 0x28], ecx
jle 0x4d2e2f
lea ecx, [ecx]
push ecx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x20]
call fcn.005010f0
push 0x4c
mov byte [esp + 0x84], 4
call fcn.00507c0d
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4d2ede
mov dword [esp + 0x1c], ebx
mov dword [ebx], 0x56a67c
xor eax, eax
mov dword [ebx + 0x18], 7
mov dword [ebx + 0x14], 0
mov word [ebx + 4], ax
mov byte [esp + 0x80], 6
call fcn.004939e0
call fcn.00493cc0
call fcn.00494300
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
mov ax, word [esp + 0x38]
cmp ax, 9
jne 0x4d2c1f
push 3
push 0x56b4b8
jmp 0x4d2c43
test ax, ax
jne 0x4d2c2d
push 3
push 0x56b4c0
jmp 0x4d2c43
cmp ax, 6
jne 0x4d2c3c
push 4
push str.ia64
jmp 0x4d2c43
push 0x14
push str.Unknown_architecture
lea ecx, [ebx + 4]
call fcn.0047c530
xor eax, eax
mov dword [ebx], 0x574fd8
mov dword [ebx + 0x30], 7
mov dword [ebx + 0x2c], 0
push eax
mov word [ebx + 0x1c], ax
push ecx
mov dword [ebx + 0x48], 7
lea ecx, [esp + 0x28]
mov dword [ebx + 0x44], eax
mov byte [esp + 0x88], 4
push esp
mov word [ebx + 0x34], ax
mov dword [esp + 0x30], ebx
call fcn.00501630
push ecx
mov ebp, esp
mov dword [ebp], 0
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x4d2cb3
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov eax, dword [ebp]
mov dword [ebp], edi
test eax, eax
je 0x4d2cb3
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
sub esp, 0xc
mov edi, esp
mov dword [edi], 0
mov dword [edi + 4], 0
mov byte [edi + 8], 0
mov ebp, dword [esp + 0xa0]
cmp dword [edi], ebp
je 0x4d2ced
test ebp, ebp
je 0x4d2cdf
mov eax, dword [ebp]
push ebp
call dword [eax + 4]
mov eax, dword [edi]
mov dword [edi], ebp
test eax, eax
je 0x4d2ced
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov al, byte [esp + 0xa8]
mov byte [edi + 8], al
mov ebp, dword [esp + 0xa4]
cmp dword [edi + 4], ebp
je 0x4d2d1e
test ebp, ebp
je 0x4d2d0e
mov eax, dword [ebp]
push ebp
call dword [eax + 4]
mov eax, dword [edi + 4]
mov dword [edi + 4], ebp
test eax, eax
je 0x4d2d1e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, ebx
call fcn.004d3880
mov ecx, dword [esi + 4]
lea eax, [esp + 0x24]
cmp eax, ecx
jae 0x4d2da0
mov ebp, dword [esi]
cmp ebp, eax
ja 0x4d2da0
mov edx, dword [esi + 8]
mov edi, eax
sub edi, ebp
sar edi, 2
cmp ecx, edx
jne 0x4d2d90
mov eax, edx
sub eax, ecx
sar eax, 2
cmp eax, 1
jae 0x4d2d90
sub ecx, ebp
mov eax, 0x3fffffff
sar ecx, 2
sub eax, ecx
cmp eax, 1
jb 0x4d2ed4
sub edx, ebp
lea ebx, [ecx + 1]
sar edx, 2
mov eax, 0x3fffffff
mov ecx, edx
shr ecx, 1
sub eax, ecx
cmp eax, edx
jae 0x4d2d80
xor edx, edx
jmp 0x4d2d82
add edx, ecx
cmp edx, ebx
jae 0x4d2d88
mov edx, ebx
push edx
mov ecx, esi
call fcn.004906e0
mov ecx, dword [esi + 4]
mov eax, dword [esi]
test ecx, ecx
je 0x4d2dfe
mov eax, dword [eax + edi*4]
mov dword [ecx], eax
jmp 0x4d2dfe
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x4d2df5
mov eax, edx
sub eax, ecx
sar eax, 2
cmp eax, 1
jae 0x4d2df5
mov ebp, dword [esi]
mov eax, 0x3fffffff
sub ecx, ebp
sar ecx, 2
sub eax, ecx
cmp eax, 1
jb 0x4d2ed4
sub edx, ebp
lea edi, [ecx + 1]
sar edx, 2
mov eax, 0x3fffffff
mov ecx, edx
shr ecx, 1
sub eax, ecx
cmp eax, edx
jae 0x4d2de5
xor edx, edx
jmp 0x4d2de7
add edx, ecx
cmp edx, edi
jae 0x4d2ded
mov edx, edi
push edx
mov ecx, esi
call fcn.004906e0
mov eax, dword [esi + 4]
test eax, eax
je 0x4d2dfe
mov dword [eax], ebx
add dword [esi + 4], 4
mov byte [esp + 0x80], 3
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4d2e18
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [esp + 0x14]
inc ecx
mov dword [esp + 0x14], ecx
cmp ecx, dword [esp + 0x28]
jl 0x4d2ba0
mov eax, dword [esp + 0x18]
mov byte [esp + 0x80], 2
test eax, eax
je 0x4d2e41
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [esp + 0x70], 8
jb 0x4d2e59
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x4d2e59
push eax
call fcn.005074d4
add esp, 4
xor eax, eax
mov dword [esp + 0x70], 7
mov byte [esp + 0x80], al
mov ecx, dword [esp + 0x8c]
mov dword [esp + 0x6c], 0
mov word [esp + 0x5c], ax
test ecx, ecx
je 0x4d2e88
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x4d2e99
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esp + 0x94]
test eax, eax
je 0x4d2eb5
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [esp + 0x78]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x60]
xor ecx, esp
call fcn.00506c7d
add esp, 0x70
ret
push str.vector_T__too_long
call fcn.005289bf
push 1
lea eax, [esp + 0x18]
mov dword [esp + 0x18], str.bad_allocation
push eax
lea ecx, [esp + 0x34]
call fcn.00506ce8
push 0x591d2c
lea eax, [esp + 0x30]
mov dword [esp + 0x30], vtable.std::bad_alloc.0
push eax
call fcn.0053e44f
int3