Function at 0x405f80
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
mov eax, dword fs:[0]
mov ecx, 0x501d4c
push 0xffffffffffffffff
push 0x4cdd7a
push eax
mov dword fs:[0], esp
sub esp, 0xc
mov eax, dword [0x501d4c]
push esi
push edi
push dword [eax + 4]
call fcn.00407c80
mov eax, dword [0x501d4c]
mov dword [eax + 4], eax
mov eax, dword [0x501d4c]
mov dword [eax], eax
mov eax, dword [0x501d4c]
mov dword [eax + 8], eax
mov eax, dword [0x501d54]
mov dword [0x501d50], 0
mov edi, dword [eax + 4]
mov esi, edi
cmp byte [edi + 0xd], 0
jne 0x406005
push dword [esi + 8]
mov ecx, 0x501d54
call fcn.00407d50
mov esi, dword [esi]
push edi
call fcn.0042400a
add esp, 4
mov edi, esi
cmp byte [esi + 0xd], 0
je 0x405fe0
mov eax, dword [0x501d54]
mov dword [eax + 4], eax
mov ecx, 0x501d4c
mov eax, dword [0x501d54]
mov dword [ebp - 0x10], 0
mov dword [eax], eax
mov eax, dword [0x501d54]
mov dword [eax + 8], eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x18]
mov dword [0x501d58], 0
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0xe
push str.Start_Launcher
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 1
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x17
push str.Start_Launcher_Download
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 2
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x15
push str.End_Launcher_Download
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 3
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0xb
push str.Run_Patcher
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 4
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x16
push str.Stop_Launcher_Download
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 5
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x10
push str.Launcher_Error__
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 6
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0xd
push str.Start_Patcher
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 7
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 6
push str.Login_
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 8
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x11
push str.Full_Client_Start
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x19
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0xf
push str.Patcher_Error__
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 9
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x16
push str.Patcher_Start_Download
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0xa
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x19
push str.Patcher_Download_Complete
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0xb
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x14
push str.Complete_Full_Client
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0xc
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x18
push str.Start_Download_Loc_Files
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0xd
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x1b
push str.Complete_Download_Loc_Files
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0xe
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0xd
push str.Download_Size
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0xf
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x13
push str.Download_Patch_File
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x10
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x1c
push str.Download_Patch_File_Complete
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x12
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x12
push str.Download_Bin_Start
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x11
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
lea ecx, [ecx + 0x14]
push 0xb
push str.User_Cancel
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x13
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x15
push str.Download_Bin_Complete
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x14
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x18
push str.Download_PatchList_Start
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x15
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x1b
push str.Download_PatchList_Complete
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x17
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x10
push str.Start_File_Check
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x18
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0x13
push str.File_Check_Complete
lea ecx, [ecx + 0x14]
call fcn.00409400
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], 0x16
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d4c
push eax
call fcn.00402f10
mov ecx, dword [ebp - 0x18]
push 0xb
push str.Start_Game_
lea ecx, [ecx + 0x14]
call fcn.00409400
xor esi, esi
lea eax, [ebp - 0x10]
mov dword [ebp - 0x10], esi
push eax
lea eax, [ebp - 0x18]
mov ecx, 0x501d54
push eax
call fcn.00402fb0
mov eax, dword [ebp - 0x18]
inc esi
mov byte [eax + 0x14], 0
cmp esi, 0x1a
jl 0x406481
cmp dword [0x501d40], 0
jne 0x406533
push 0x28
call fcn.0042400f
mov edi, eax
add esp, 4
mov dword [ebp - 0x10], edi
mov dword [ebp - 4], 0
test edi, edi
je 0x406508
lea esi, [edi + 8]
push 0
mov dword [ebp - 0x14], esi
mov ecx, esi
push 0
mov dword [esi], 0
mov dword [esi + 4], 0
call fcn.00407720
mov dword [esi], eax
mov byte [ebp - 4], 3
lea eax, [edi + 0x10]
push eax
mov byte [edi], 0
mov dword [edi + 4], 0
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
mov byte [ebp - 4], 0
jmp 0x40650a
xor edi, edi
mov dword [ebp - 4], 0xffffffff
push 0
push 0
push edi
push 0x405de0
push 0
mov dword [0x501d40], edi
push 0
mov byte [edi], 1
call fcn.004a7224
add esp, 0x18
mov dword [edi + 4], eax
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret