Function at 0x40a120
Capabilities:
Get system information on windows

Disassembly:
push 0xffffffffffffffff
push 0x4b089b
mov eax, dword fs:[0]
push eax
sub esp, 0x544
mov eax, dword [0x4cd094]
xor eax, esp
mov dword [esp + 0x540], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4cd094]
xor eax, esp
push eax
lea eax, [esp + 0x558]
mov dword fs:[0], eax
mov ebp, dword [esp + 0x568]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.00480ded
add esp, 4
lea eax, [esp + 0x1c]
push eax
call dword [sym.imp.KERNEL32.dll_GetSystemInfo]
mov ecx, dword [esp + 0x30]
mov dword [0x512c94], ecx
call dword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov dword [0x512cc0], eax
xor ebx, ebx
mov eax, 0x512a38
mov edx, str.FarmManager
xor edi, edi
mov dword [0x512a30], ebx
mov dword [0x512a34], ebp
mov esi, 0x100
sub edx, eax
mov cl, byte [edx + eax]
cmp cl, bl
je 0x40a1c5
mov byte [eax], cl
add eax, 1
sub esi, 1
jne 0x40a1b2
jmp 0x40a1c9
cmp esi, ebx
jne 0x40a1d1
sub eax, 1
mov edi, 0x8007007a
cmp edi, ebx
mov byte [eax], bl
je 0x40a1e4
call fcn.00458bc0
or eax, 0xffffffff
jmp 0x40a49c
mov edx, dword [esp + 0x56c]
mov eax, 0x512a78
xor edi, edi
mov esi, 0x104
sub edx, eax
lea esp, [esp]
mov cl, byte [edx + eax]
cmp cl, bl
je 0x40a213
mov byte [eax], cl
add eax, 1
sub esi, 1
jne 0x40a200
jmp 0x40a217
cmp esi, ebx
jne 0x40a21f
sub eax, 1
mov edi, 0x8007007a
cmp edi, ebx
mov byte [eax], bl
jne 0x40a1d7
lea esi, [esp + 0x14]
call fcn.00440930
mov dword [esp + 0x560], ebx
mov ecx, esi
call fcn.00440990
test eax, eax
jne 0x40a276
push str.cannot_create_semaphore_:_module_already_executing
call fcn.00457a40
push str.cannot_create_semaphore_:_module_already_executing
mov esi, str.FarmManager
call fcn.0040a040
add esp, 8
or edi, 0xffffffff
mov dword [esp + 0x560], edi
lea esi, [esp + 0x14]
call fcn.00440970
mov eax, edi
jmp 0x40a49c
push 0x104
lea edx, [esp + 0x24c]
push edx
push ebp
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameA]
push 0x104
lea eax, [esp + 0x350]
push eax
push 0x104
lea ecx, [esp + 0x45c]
push ecx
push 0x104
lea edx, [esp + 0x54]
push edx
push 0x104
lea eax, [esp + 0x160]
push eax
lea ecx, [esp + 0x268]
push ecx
call fcn.00481389
lea eax, [esp + 0x64]
add esp, 0x24
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x40a2d2
sub eax, edx
mov byte [esp + eax + 0x3f], bl
lea edx, [esp + 0x40]
push edx
lea eax, [esp + 0x148]
push eax
push str._s_s
mov eax, 0x104
mov edi, 0x512b7c
call fcn.00408ae0
add esp, 0xc
test eax, eax
je 0x40a313
call fcn.00458bc0
jmp 0x40a25c
or edi, 0xffffffff
push str.ServerFrameworkRes.dll
mov dword [0x512cc4], 0x112
mov dword [0x512cc8], 0x201
mov dword [0x512cd4], ebx
mov dword [0x512cdc], edi
mov dword [0x512ce0], ebx
mov dword [0x512ce4], ebx
call dword [sym.imp.KERNEL32.dll_LoadLibraryA]
cmp eax, ebx
mov dword [0x4d1478], eax
jne 0x40a389
push str.cannot_load_ServerFrameworkRes.dll
call fcn.00457a40
push str.cannot_load_ServerFrameworkRes.dll
mov esi, str.FarmManager
call fcn.0040a040
add esp, 8
mov dword [esp + 0x560], edi
lea esi, [esp + 0x14]
call fcn.00440970
mov eax, edi
jmp 0x40a49c
call fcn.0040a7b0
test al, al
jne 0x40a3ca
push str.FarmManager
push str.cant_find_server.cfg_or_failed_to_parse_server_config_block___s_
call fcn.00457a40
push str.paring_config_error
mov esi, str.FarmManager
call fcn.0040a040
add esp, 0xc
mov dword [esp + 0x560], edi
lea esi, [esp + 0x14]
call fcn.00440970
mov eax, edi
jmp 0x40a49c
mov eax, 0x512c98
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
cmp cl, bl
jne 0x40a3d2
sub eax, edx
jne 0x40a41d
call fcn.0040c650
test eax, eax
je 0x40a41d
push str.FarmManager
push str.there_is_no_assigned_ip_for_certifying_server___s_
call fcn.00457a40
push str.certification_ip_is_void
mov esi, str.FarmManager
call fcn.0040a040
add esp, 0xc
mov dword [esp + 0x560], edi
lea esi, [esp + 0x14]
call fcn.00440970
mov eax, edi
jmp 0x40a49c
push 0x512c80
mov eax, 0x512c84
call fcn.0040a510
add esp, 4
test al, al
jne 0x40a463
push str.failed_to_identify_public_ip_of_this_machine
call fcn.00457a40
push str.cannot_identity_machine_public_ip
mov esi, str.FarmManager
call fcn.0040a040
add esp, 8
mov dword [esp + 0x560], edi
lea esi, [esp + 0x14]
call fcn.00440970
mov eax, edi
jmp 0x40a49c
call fcn.00440f80
mov ecx, dword [0x512cc8]
mov eax, dword [0x512cc4]
call fcn.004587b0
call fcn.0043f0c0
mov ecx, dword [0x4d1478]
push ecx
call dword [sym.imp.KERNEL32.dll_FreeLibrary]
mov dword [esp + 0x560], edi
lea esi, [esp + 0x14]
call fcn.00440970
xor eax, eax
mov ecx, dword [esp + 0x558]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x540]
xor ecx, esp
call fcn.004804c6
add esp, 0x550
ret