Function at 0x4d3300
Capabilities:
Get system information on windows

Disassembly:
push 0xffffffffffffffff
push 0x54a67e
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x596c60]
xor eax, esp
mov dword [esp + 0x60], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x596c60]
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.004d1110
lea eax, [esp + 0x5c]
mov byte [esp + 0x80], 2
push eax
lea eax, [esp + 0x1c]
push eax
lea ecx, [esp + 0x9c]
call fcn.00501bb0
mov byte [esp + 0x80], 3
mov eax, dword [esp + 0x18]
mov dword [esp + 0x28], 0
test eax, eax
je 0x4d338d
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 0x4d362f
lea ecx, [ecx]
push ecx
lea eax, [esp + 0x24]
push eax
lea ecx, [esp + 0x20]
call fcn.00501770
push 0x4c
mov byte [esp + 0x84], 4
call fcn.0050828d
mov ebx, eax
add esp, 4
test ebx, ebx
je 0x4d36de
mov dword [esp + 0x1c], ebx
mov dword [ebx], 0x56b67c
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.00493c80
call fcn.00493f60
call fcn.004945a0
lea eax, [esp + 0x38]
push eax
call dword [sym.imp.KERNEL32.dll_GetNativeSystemInfo]
mov ax, word [esp + 0x38]
cmp ax, 9
jne 0x4d341f
push 3
push 0x56c4b4
jmp 0x4d3443
test ax, ax
jne 0x4d342d
push 3
push 0x56c4bc
jmp 0x4d3443
cmp ax, 6
jne 0x4d343c
push 4
push str.ia64
jmp 0x4d3443
push 0x14
push str.Unknown_architecture
lea ecx, [ebx + 4]
call fcn.0047c4b0
xor eax, eax
mov dword [ebx], 0x576008
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.00501cb0
push ecx
mov ebp, esp
mov dword [ebp], 0
mov edi, dword [esp + 0x2c]
test edi, edi
je 0x4d34b3
mov eax, dword [edi]
push edi
call dword [eax + 4]
mov eax, dword [ebp]
mov dword [ebp], edi
test eax, eax
je 0x4d34b3
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 0x4d34ed
test ebp, ebp
je 0x4d34df
mov eax, dword [ebp]
push ebp
call dword [eax + 4]
mov eax, dword [edi]
mov dword [edi], ebp
test eax, eax
je 0x4d34ed
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 0x4d351e
test ebp, ebp
je 0x4d350e
mov eax, dword [ebp]
push ebp
call dword [eax + 4]
mov eax, dword [edi + 4]
mov dword [edi + 4], ebp
test eax, eax
je 0x4d351e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, ebx
call fcn.004d4080
mov ecx, dword [esi + 4]
lea eax, [esp + 0x24]
cmp eax, ecx
jae 0x4d35a0
mov ebp, dword [esi]
cmp ebp, eax
ja 0x4d35a0
mov edx, dword [esi + 8]
mov edi, eax
sub edi, ebp
sar edi, 2
cmp ecx, edx
jne 0x4d3590
mov eax, edx
sub eax, ecx
sar eax, 2
cmp eax, 1
jae 0x4d3590
sub ecx, ebp
mov eax, 0x3fffffff
sar ecx, 2
sub eax, ecx
cmp eax, 1
jb 0x4d36d4
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 0x4d3580
xor edx, edx
jmp 0x4d3582
add edx, ecx
cmp edx, ebx
jae 0x4d3588
mov edx, ebx
push edx
mov ecx, esi
call fcn.00490650
mov ecx, dword [esi + 4]
mov eax, dword [esi]
test ecx, ecx
je 0x4d35fe
mov eax, dword [eax + edi*4]
mov dword [ecx], eax
jmp 0x4d35fe
mov edx, dword [esi + 8]
cmp ecx, edx
jne 0x4d35f5
mov eax, edx
sub eax, ecx
sar eax, 2
cmp eax, 1
jae 0x4d35f5
mov ebp, dword [esi]
mov eax, 0x3fffffff
sub ecx, ebp
sar ecx, 2
sub eax, ecx
cmp eax, 1
jb 0x4d36d4
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 0x4d35e5
xor edx, edx
jmp 0x4d35e7
add edx, ecx
cmp edx, edi
jae 0x4d35ed
mov edx, edi
push edx
mov ecx, esi
call fcn.00490650
mov eax, dword [esi + 4]
test eax, eax
je 0x4d35fe
mov dword [eax], ebx
add dword [esi + 4], 4
mov byte [esp + 0x80], 3
mov eax, dword [esp + 0x20]
test eax, eax
je 0x4d3618
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 0x4d33a0
mov eax, dword [esp + 0x18]
mov byte [esp + 0x80], 2
test eax, eax
je 0x4d3641
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
cmp dword [esp + 0x70], 8
jb 0x4d3659
mov eax, dword [esp + 0x5c]
test eax, eax
je 0x4d3659
push eax
call fcn.00507b54
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 0x4d3688
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [esp + 0x88]
test ecx, ecx
je 0x4d3699
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov dword [esp + 0x80], 0xffffffff
mov eax, dword [esp + 0x94]
test eax, eax
je 0x4d36b5
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.005072fd
add esp, 0x70
ret
push str.vector_T__too_long
call fcn.0052904f
push 1
lea eax, [esp + 0x18]
mov dword [esp + 0x18], str.bad_allocation
push eax
lea ecx, [esp + 0x34]
call fcn.00507368
push 0x592bac
lea eax, [esp + 0x30]
mov dword [esp + 0x30], vtable.std::bad_alloc.0
push eax
call fcn.0053eadf
int3