Function at 0x412850
Capabilities:
Print debug messages

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x4615cd
mov eax, dword fs:[0]
push eax
sub esp, 0x2d0
mov eax, dword [0x47c824]
xor eax, esp
mov dword [esp + 0x2c8], eax
push ebx
push esi
push edi
mov eax, dword [0x47c824]
xor eax, esp
push eax
lea eax, [esp + 0x2e0]
mov dword fs:[0], eax
push str.request_new_pak
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
call fcn.00412dd0
mov esi, dword [0x481d04]
mov ebx, dword [0x481d08]
cmp esi, ebx
jbe 0x4128bb
call fcn.00441eb0
mov ebx, dword [0x481d08]
mov dword [esp + 0x1c], esi
nop
cmp dword [0x481d04], ebx
mov edi, ebx
jbe 0x4128d5
call fcn.00441eb0
mov ebx, dword [0x481d08]
cmp esi, edi
je 0x412d22
cmp esi, ebx
jb 0x4128ec
call fcn.00441eb0
mov ebx, dword [0x481d08]
mov edi, dword [esi + 0x14]
mov edx, 0x10
cmp dword [esi + 0x18], edx
jb 0x4128fe
mov ecx, dword [esi + 4]
jmp 0x412901
lea ecx, [esi + 4]
mov eax, dword [0x47dccc]
cmp eax, edi
jb 0x41290c
mov eax, edi
cmp dword [0x47dcd0], edx
mov edx, dword [0x47dcbc]
jae 0x41291f
mov edx, 0x47dcbc
call fcn.00401040
test eax, eax
jne 0x41293e
mov eax, dword [0x47dccc]
cmp eax, edi
jb 0x41293e
xor ecx, ecx
cmp eax, edi
setne cl
mov eax, ecx
test eax, eax
je 0x412958
cmp esi, ebx
jb 0x41294d
call fcn.00441eb0
mov ebx, dword [0x481d08]
add esi, 0xa8
jmp 0x4128c0
cmp esi, ebx
mov dword [esp + 0x1c], esi
jb 0x412965
call fcn.00441eb0
cmp dword [esi + 0x30], 0
jbe 0x412ccc
lea edx, [esp + 0x74]
push edx
call fcn.0040a950
mov dword [esp + 0x2e8], 0
cmp esi, dword [0x481d08]
jb 0x412991
call fcn.00441eb0
push 0xffffffffffffffff
push 0
lea ebx, [esi + 0x54]
push ebx
lea ecx, [esp + 0x64]
mov dword [esp + 0x7c], 0xf
mov dword [esp + 0x78], 0
mov byte [esp + 0x68], 0
call fcn.004015b0
lea eax, [esp + 0x14]
mov byte [esp + 0x2e8], 1
push eax
lea edi, [esp + 0x5c]
mov byte [esp + 0x18], 0x5c
call fcn.0040b660
cmp eax, 0xffffffff
je 0x412a1b
push 0xffffffffffffffff
lea ecx, [eax + 1]
lea esi, [esp + 0x24]
mov edx, edi
call fcn.0040b580
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
mov byte [esp + 0x2f4], 2
call fcn.004015b0
mov byte [esp + 0x2e8], 1
cmp dword [esp + 0x38], 0x10
jb 0x412a17
mov ecx, dword [esp + 0x24]
push ecx
call fcn.00420ede
add esp, 4
mov esi, dword [esp + 0x1c]
lea edx, [esp + 0x14]
push edx
lea edi, [esp + 0x5c]
mov byte [esp + 0x18], 0x2f
call fcn.0040b660
cmp eax, 0xffffffff
je 0x412a77
push 0xffffffffffffffff
lea ecx, [eax + 1]
lea esi, [esp + 0x24]
mov edx, edi
call fcn.0040b580
push 0xffffffffffffffff
push 0
push eax
mov ecx, edi
mov byte [esp + 0x2f4], 3
call fcn.004015b0
mov byte [esp + 0x2e8], 1
cmp dword [esp + 0x38], 0x10
jb 0x412a73
mov eax, dword [esp + 0x24]
push eax
call fcn.00420ede
add esp, 4
mov esi, dword [esp + 0x1c]
push 0xffffffffffffffff
push 0
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0x9c]
call fcn.004015b0
push 0x481db8
lea edi, [esp + 0x40]
call fcn.0040c140
add esp, 4
mov edi, eax
mov byte [esp + 0x2e8], 4
cmp esi, dword [0x481d08]
jb 0x412ab4
call fcn.00441eb0
push ebx
push edi
lea edi, [esp + 0x28]
call fcn.00406750
add esp, 8
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0x80]
mov byte [esp + 0x2f4], 5
call fcn.004015b0
mov esi, 0x10
cmp dword [esp + 0x38], esi
jb 0x412af3
mov edx, dword [esp + 0x24]
push edx
call fcn.00420ede
add esp, 4
mov byte [esp + 0x2e8], 1
cmp dword [esp + 0x54], esi
mov dword [esp + 0x38], 0xf
mov dword [esp + 0x34], 0
mov byte [esp + 0x24], 0
jb 0x412b23
mov eax, dword [esp + 0x40]
push eax
call fcn.00420ede
add esp, 4
push 0x47dcf0
mov edi, str.Patch_
lea esi, [esp + 0x40]
call fcn.00402620
add esp, 4
push 0xffffffffffffffff
push 0
push eax
lea ecx, [esp + 0xb8]
mov byte [esp + 0x2f4], 6
call fcn.004015b0
mov byte [esp + 0x2e8], 1
cmp dword [esp + 0x54], 0x10
jb 0x412b6e
mov ecx, dword [esp + 0x40]
push ecx
call fcn.00420ede
add esp, 4
mov ebx, dword [esp + 0x1c]
cmp ebx, dword [0x481d08]
mov dword [esp + 0xcc], 0x410800
mov dword [esp + 0xc8], 0x410ca0
jb 0x412b95
call fcn.00441eb0
mov eax, ebx
mov esi, 0x481c38
call fcn.00412d60
push 0x480dd0
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea edx, [esp + 0x74]
push edx
call fcn.0040b5b0
push 0x480dd0
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
call fcn.004241d0
mov eax, dword [eax + 4]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
mov esi, eax
test esi, esi
je 0x412c88
push 0x1ff
lea ecx, [esp + 0xd9]
push 0
push ecx
mov byte [esp + 0xe0], 0
call fcn.00445a00
add esp, 0xc
push 0xa
push ecx
call fcn.00405940
add esp, 4
lea edi, [esp + 0x40]
call fcn.00407270
cmp ebx, dword [0x481d08]
mov edi, eax
jb 0x412c1e
call fcn.00441eb0
mov eax, 0x10
cmp dword [ebx + 0x34], eax
jb 0x412c2d
mov ebx, dword [ebx + 0x20]
jmp 0x412c30
add ebx, 0x20
cmp dword [edi + 0x18], eax
jb 0x412c3a
mov eax, dword [edi + 4]
jmp 0x412c3d
lea eax, [edi + 4]
push ebx
push eax
lea edx, [esp + 0xdc]
push edx
call fcn.004437c1
add esp, 0xc
cmp dword [esp + 0x54], 0x10
jb 0x412c63
mov eax, dword [esp + 0x40]
push eax
call fcn.00420ede
add esp, 4
sub esp, 0x1c
lea edx, [esp + 0xf0]
mov ecx, esp
mov dword [esp + 0x34], esp
push edx
call fcn.00401470
call fcn.0040cad0
mov dword [esi + 0x118], 2
push str.find_new_version
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
cmp dword [esp + 0x70], 0x10
jb 0x412ca7
mov eax, dword [esp + 0x5c]
push eax
call fcn.00420ede
add esp, 4
lea esi, [esp + 0x74]
mov dword [esp + 0x70], 0xf
mov dword [esp + 0x6c], 0
mov byte [esp + 0x5c], 0
call fcn.00405c10
mov eax, 2
jmp 0x412d33
push str.pak_is_new_not_need_download_
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
call fcn.004241d0
mov eax, dword [eax + 4]
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x74]
call eax
mov esi, eax
test esi, esi
je 0x412d16
sub esp, 0x1c
mov edi, esp
mov dword [esp + 0x34], esp
push 9
push ecx
call fcn.00405940
add esp, 4
call fcn.00407270
call fcn.0040cad0
mov dword [esi + 0x118], 3
call fcn.004138b0
mov eax, 1
jmp 0x412d33
push str.no_version_find_
mov dword [esp + 0x20], esi
call dword [sym.imp.KERNEL32.dll_OutputDebugStringA]
xor eax, eax
mov ecx, dword [esp + 0x2e0]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x2c8]
xor ecx, esp
call fcn.00441b4d
mov esp, ebp
pop ebp
ret