Function at 0x402301
Capabilities:
Get system information on windows

Disassembly:
push 0x48
mov eax, 0x403957
call fcn.00402e76
mov dword [ebp - 0x10], ecx
mov ebx, dword [ebp + 0x10]
cmp byte [ebx + 0x45], 0
je 0x4020ca
push str.invalid_map_set_T__iterator
lea ecx, [ebp - 0x2c]
call dword [sym.imp.MSVCP80.dll_public:_void___thiscall_std::basic_string_char__struct_std::char_traits_char___class_std::allocator_char__::constructor_char_const__]
and dword [ebp - 4], 0
lea eax, [ebp - 0x2c]
push eax
lea ecx, [ebp - 0x54]
call fcn.0040122b
push 0x407148
lea eax, [ebp - 0x54]
push eax
mov dword [ebp - 0x54], vtable.std::out_of_range.0
call sub.MSVCR80.dll__CxxThrowException
lea ecx, [ebp + 0xc]
call fcn.00401667
mov ecx, dword [ebx]
cmp byte [ecx + 0x45], 0
je 0x4020df
mov edi, dword [ebx + 8]
jmp 0x4020f6
mov eax, dword [ebx + 8]
cmp byte [eax + 0x45], 0
je 0x4020ec
mov edi, ecx
jmp 0x4020f6
mov eax, dword [ebp + 0x10]
cmp eax, ebx
mov edi, dword [eax + 8]
jne 0x40216c
cmp byte [edi + 0x45], 0
mov esi, dword [ebx + 4]
jne 0x402102
mov dword [edi + 4], esi
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 4]
cmp dword [eax + 4], ebx
jne 0x402112
mov dword [eax + 4], edi
jmp 0x40211d
cmp dword [esi], ebx
jne 0x40211a
mov dword [esi], edi
jmp 0x40211d
mov dword [esi + 8], edi
mov ecx, dword [ecx + 4]
cmp dword [ecx], ebx
jne 0x402140
cmp byte [edi + 0x45], 0
je 0x40212e
mov edx, esi
jmp 0x40213e
mov eax, dword [edi]
mov edx, edi
jmp 0x402138
mov edx, eax
mov eax, dword [edx]
cmp byte [eax + 0x45], 0
je 0x402134
mov dword [ecx], edx
mov eax, dword [ebp - 0x10]
mov ecx, dword [eax + 4]
cmp dword [ecx + 8], ebx
jne 0x4021c6
cmp byte [edi + 0x45], 0
je 0x402155
mov edx, esi
jmp 0x402167
mov eax, dword [edi + 8]
mov edx, edi
jmp 0x402161
mov edx, eax
mov eax, dword [edx + 8]
cmp byte [eax + 0x45], 0
je 0x40215c
mov dword [ecx + 8], edx
jmp 0x4021c6
mov dword [ecx + 4], eax
mov ecx, dword [ebx]
mov dword [eax], ecx
cmp eax, dword [ebx + 8]
jne 0x40217c
mov esi, eax
jmp 0x402196
cmp byte [edi + 0x45], 0
mov esi, dword [eax + 4]
jne 0x402188
mov dword [edi + 4], esi
mov dword [esi], edi
mov ecx, dword [ebx + 8]
mov dword [eax + 8], ecx
mov ecx, dword [ebx + 8]
mov dword [ecx + 4], eax
mov ecx, dword [ebp - 0x10]
mov ecx, dword [ecx + 4]
cmp dword [ecx + 4], ebx
jne 0x4021a6
mov dword [ecx + 4], eax
jmp 0x4021b4
mov ecx, dword [ebx + 4]
cmp dword [ecx], ebx
jne 0x4021b1
mov dword [ecx], eax
jmp 0x4021b4
mov dword [ecx + 8], eax
mov ecx, dword [ebx + 4]
mov dword [eax + 4], ecx
mov dl, byte [ebx + 0x44]
mov cl, byte [eax + 0x44]
mov byte [eax + 0x44], dl
mov byte [ebx + 0x44], cl
cmp byte [ebx + 0x44], 1
jne 0x4022d3
jmp 0x402287
cmp byte [edi + 0x44], 1
jne 0x4022cf
mov eax, dword [esi]
cmp edi, eax
jne 0x402251
mov eax, dword [esi + 8]
cmp byte [eax + 0x44], 0
jne 0x4021ff
mov byte [eax + 0x44], 1
push esi
mov byte [esi + 0x44], 0
call fcn.00401a13
mov eax, dword [esi + 8]
cmp byte [eax + 0x45], 0
jne 0x402282
mov ecx, dword [eax]
cmp byte [ecx + 0x44], 1
jne 0x402216
mov ecx, dword [eax + 8]
cmp byte [ecx + 0x44], 1
je 0x40227e
mov ecx, dword [eax + 8]
cmp byte [ecx + 0x44], 1
jne 0x402235
mov ecx, dword [eax]
mov byte [ecx + 0x44], 1
mov ecx, dword [ebp - 0x10]
push eax
mov byte [eax + 0x44], 0
call fcn.00401a55
mov eax, dword [esi + 8]
mov cl, byte [esi + 0x44]
mov byte [eax + 0x44], cl
mov ecx, dword [ebp - 0x10]
mov byte [esi + 0x44], 1
mov eax, dword [eax + 8]
push esi
mov byte [eax + 0x44], 1
call fcn.00401a13
jmp 0x4022cf
cmp byte [eax + 0x44], 0
jne 0x402267
mov byte [eax + 0x44], 1
push esi
mov byte [esi + 0x44], 0
call fcn.00401a55
mov eax, dword [esi]
cmp byte [eax + 0x45], 0
jne 0x402282
mov ecx, dword [eax + 8]
cmp byte [ecx + 0x44], 1
jne 0x402298
mov ecx, dword [eax]
cmp byte [ecx + 0x44], 1
jne 0x402298
mov byte [eax + 0x44], 0
mov edi, esi
mov esi, dword [esi + 4]
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 4]
cmp edi, dword [eax + 4]
jne 0x4021d5
jmp 0x4022cf
mov ecx, dword [eax]
cmp byte [ecx + 0x44], 1
jne 0x4022b6
mov ecx, dword [eax + 8]
mov byte [ecx + 0x44], 1
mov ecx, dword [ebp - 0x10]
push eax
mov byte [eax + 0x44], 0
call fcn.00401a13
mov eax, dword [esi]
mov cl, byte [esi + 0x44]
mov byte [eax + 0x44], cl
mov ecx, dword [ebp - 0x10]
mov byte [esi + 0x44], 1
mov eax, dword [eax]
push esi
mov byte [eax + 0x44], 1
call fcn.00401a55
mov byte [edi + 0x44], 1
push 0
mov ecx, ebx
call fcn.00401bab
push ebx
call sub.MSVCR80.dll_void___cdecl_operator_delete_void__
pop ecx
mov ecx, dword [ebp - 0x10]
mov eax, dword [ecx + 8]
test eax, eax
jbe 0x4022f1
dec eax
mov dword [ecx + 8], eax
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov dword [eax], ecx
mov ecx, dword [ebp + 0x10]
mov dword [eax + 4], ecx
call fcn.00402edf
ret 0xc