Function at 0x408970
Capabilities:
Access peb ldr_data

Disassembly:
mov eax, dword fs:[0]
push 0xffffffffffffffff
push 0x4192f8
push eax
mov dword fs:[0], esp
sub esp, 0x30
push esi
mov esi, ecx
push edi
push 0x41d630
push str.LoginSvr_
lea ecx, [esi + 0x48c]
call fcn.0040bde0
test al, al
je 0x408cba
call fcn.00402f80
cmp byte [eax], 0
je 0x408c9f
call fcn.00402f80
mov cl, byte [eax + 0x300]
test cl, cl
je 0x408c9f
call fcn.00402f80
mov ecx, dword [eax + 0x600]
test ecx, ecx
je 0x408c9f
call fcn.00402f80
mov ecx, dword [eax + 0x604]
test ecx, ecx
je 0x408c9f
call fcn.00402f80
mov ecx, dword [eax + 0x608]
test ecx, ecx
je 0x408c9f
mov eax, dword [esi + 0x3d4]
lea edi, [esi + 0x3d4]
push 2
push 0x3e8
mov ecx, edi
call dword [eax + 4]
test al, al
jne 0x408a4a
push str.Failed_to_allocate_hash_table.
push 0xff
call fcn.00402f70
push eax
call fcn.00401a20
add esp, 0xc
xor al, al
pop edi
pop esi
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret
mov edx, dword [edi]
push 0x40a140
mov ecx, edi
call dword [edx + 0xc]
push 0
call fcn.00402f80
add eax, 0x200
push eax
call fcn.00402f80
add eax, 0x100
push eax
call fcn.00402f80
push eax
lea ecx, [esi + 0x238]
call fcn.004032e0
test al, al
je 0x408cba
push 0
call fcn.00402f80
add eax, 0x500
push eax
call fcn.00402f80
add eax, 0x400
push eax
call fcn.00402f80
add eax, 0x300
lea ecx, [esi + 0x264]
push eax
call fcn.004032e0
test al, al
je 0x408cba
mov ecx, esi
call fcn.004095a0
test al, al
je 0x408cba
push 0
push 0
push 1
mov ecx, esi
call fcn.004049a0
test al, al
je 0x408be5
push ebx
call fcn.00402f80
mov ax, word [eax + 0x600]
lea ecx, [esp + 0x2c]
push eax
call fcn.0040dd60
lea edi, [esi + 0x30c]
push eax
mov ecx, edi
mov dword [esp + 0x48], 0
call fcn.00404070
test al, al
je 0x408bcd
push edi
mov ecx, esi
call fcn.00404a70
test al, al
sete al
test al, al
jne 0x408bcd
call fcn.00402f80
mov cx, word [eax + 0x604]
push ecx
lea ecx, [esp + 0x10]
call fcn.0040dd60
lea edi, [esi + 0x360]
push eax
mov ecx, edi
mov byte [esp + 0x48], 1
call fcn.00404070
test al, al
lea ecx, [esp + 0xc]
mov byte [esp + 0x44], 0
sete bl
call fcn.0040ddd0
test bl, bl
jne 0x408bcd
push edi
mov ecx, esi
call fcn.00404a70
test al, al
sete al
test al, al
jne 0x408bcd
call fcn.00402f80
mov dx, word [eax + 0x608]
lea ecx, [esp + 0x1c]
push edx
call fcn.0040dd60
lea edi, [esi + 0x3b4]
push eax
mov ecx, edi
mov byte [esp + 0x48], 2
call fcn.00404070
test al, al
lea ecx, [esp + 0x1c]
mov byte [esp + 0x44], 0
sete bl
call fcn.0040ddd0
test bl, bl
jne 0x408bcd
push edi
mov ecx, esi
call fcn.00404a70
test al, al
sete al
test al, al
je 0x408bcf
mov bl, 1
lea ecx, [esp + 0x2c]
mov dword [esp + 0x44], 0xffffffff
call fcn.0040ddd0
test bl, bl
pop ebx
je 0x408c0b
call dword [sym.imp.KERNEL32.dll_GetLastError]
push eax
call fcn.00402f70
mov ecx, eax
call fcn.00401ad0
pop edi
xor al, al
pop esi
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret
push 0
push 0x1b7740
push 0
call fcn.00402f70
mov eax, dword [eax + 0xc]
mov esi, dword [sym.imp.USER32.dll_SetTimer]
push eax
call esi
push 0
push 0x4e20
push 1
call fcn.00402f70
mov ecx, dword [eax + 0xc]
push ecx
call esi
push 0
push 0x2710
push 2
call fcn.00402f70
mov edx, dword [eax + 0xc]
push edx
call esi
push 0
push 0x927c0
push 3
call fcn.00402f70
mov eax, dword [eax + 0xc]
push eax
call esi
push str.Login_Server_initialized.
push 0xff0000
call fcn.00402f70
push eax
call fcn.00401a20
add esp, 0xc
push str.Running..
call fcn.00402f70
push eax
call fcn.00401b40
add esp, 8
mov al, 1
pop edi
pop esi
mov ecx, dword [esp + 0x30]
mov dword fs:[0], ecx
add esp, 0x3c
ret
push 0
push 0x9c43
push 0x111
call fcn.00402f70
mov ecx, dword [eax + 0xc]
push ecx
call dword [sym.imp.USER32.dll_PostMessageA]
mov ecx, dword [esp + 0x38]
pop edi
xor al, al
pop esi
mov dword fs:[0], ecx
add esp, 0x3c
ret