Function at 0x422b40
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cfab0
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0x40
push ebx
xorps xmm0, xmm0
mov dword [ebp - 0x4c], 0
push esi
mov esi, ecx
movlpd qword [ebp - 0x3c], xmm0
mov byte [ebp - 0x48], 0
mov dword [ebp - 0x44], 0
movups xmm0, xmmword [ebp - 0x4c]
push edi
push dword [ebp + 8]
movups xmmword [esi + 8], xmm0
mov dword [ebp - 0x34], 0
lea eax, [esi + 0x30]
mov dword [ebp - 0x30], 0
movups xmm0, xmmword [ebp - 0x3c]
push eax
mov dword [ebp - 0x2c], 0
lea eax, [ebp - 0x3c]
movups xmmword [esi + 0x18], xmm0
push eax
movq xmm0, qword [ebp - 0x2c]
movq qword [esi + 0x28], xmm0
call fcn.00421ac0
mov dword [ebp - 4], 0
mov edi, dword [ebp + 0xc]
push edi
push eax
lea eax, [ebp - 0x24]
push eax
call fcn.00421a40
add esp, 0x18
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x28]
cmp eax, 0x10
jb 0x422bea
inc eax
lea ecx, [ebp - 0x3c]
push eax
push dword [ebp - 0x3c]
call fcn.00409cd0
mov ebx, dword [ebp + 0x10]
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 0x3c]
mov dword [ebp - 0x28], 0xf
push eax
mov dword [ebp - 0x2c], 0
mov byte [ebp - 0x3c], 0
mov dword [esi + 0x18], 0
mov dword [esi + 0x1c], 0
mov dword [esi + 0x10], 0
mov dword [esi + 8], ebx
call fcn.004236a0
add esp, 8
mov byte [ebp - 4], 3
cmp dword [eax + 0x14], 8
jb 0x422c33
mov eax, dword [eax]
push eax
push str.PACurlFileDownloader::download_real
push 0x5c
push str.D:BDOGlobal_AlphacodeCrimsonDesert_srcPAPatchLauncherPA_CurlFileDownloader.cpp
call fcn.0049efbd
add esp, 8
add eax, 2
push eax
push str.REQ_URL__s__s_:_s
push 1
push 0x160
call fcn.00423ab0
add esp, 0x18
mov byte [ebp - 4], 2
mov eax, dword [ebp - 0x28]
cmp eax, 8
jb 0x422c79
inc eax
lea ecx, [ebp - 0x3c]
push eax
push dword [ebp - 0x3c]
call fcn.00409d20
xor eax, eax
mov dword [ebp - 0x28], 7
cmp dword [ebp - 0x10], 0x10
mov ecx, esi
mov word [ebp - 0x3c], ax
lea eax, [ebp - 0x24]
cmovae eax, dword [ebp - 0x24]
push eax
mov dword [ebp - 0x2c], 0
call fcn.00422fb0
test al, al
jne 0x422cbe
mov eax, dword [esi + 0x10]
test eax, eax
je 0x422cb4
push eax
call fcn.004b1ad9
add esp, 4
mov edi, 0x5d
jmp 0x422dd6
push edi
mov ecx, esi
call fcn.00423070
push dword [esi]
mov ecx, esi
call fcn.00422f20
cmp byte [esi + 0x54], 1
jne 0x422cf4
push 1
push 0x29
push dword [esi]
call sym.BlackDesertLauncher.exe_curl_easy_setopt
push 0x422630
push 0x4e7e
push dword [esi]
call sym.BlackDesertLauncher.exe_curl_easy_setopt
add esp, 0x18
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push dword [esi]
mov dword [esi + 0x28], eax
call sym.BlackDesertLauncher.exe_curl_easy_perform
mov edi, eax
add esp, 4
test edi, edi
je 0x422d6a
push edi
call sym.BlackDesertLauncher.exe_curl_easy_strerror
push eax
lea eax, [ebp - 0x3c]
push eax
call fcn.00409890
mov byte [ebp - 4], 4
lea eax, [ebp - 0x3c]
cmp dword [ebp - 0x28], 8
cmovae eax, dword [ebp - 0x3c]
push eax
push edi
push str.failed_to_curl_perform:___d_____s
push 3
push 0x17c
call fcn.00423ab0
mov eax, dword [esi + 0x10]
add esp, 0x20
test eax, eax
je 0x422d52
push eax
call fcn.004b1ad9
add esp, 4
push dword [esi]
call sym.BlackDesertLauncher.exe_curl_easy_cleanup
add esp, 4
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x3c]
call fcn.004044e0
jmp 0x422dd6
lea eax, [ebp + 8]
mov dword [ebp + 8], 0
push eax
push 0x200002
push dword [esi]
call sym.BlackDesertLauncher.exe_curl_easy_getinfo
mov eax, dword [esi + 0x10]
add esp, 0xc
cmp dword [ebp + 8], 0x190
jl 0x422db5
test eax, eax
je 0x422d9d
push eax
call fcn.004b1ad9
add esp, 4
push dword [esi]
call sym.BlackDesertLauncher.exe_curl_easy_cleanup
add esp, 4
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov edi, 0x5d
jmp 0x422dd6
test eax, eax
je 0x422dca
push eax
call fcn.004b547c
push dword [esi + 0x10]
call fcn.004b1ad9
add esp, 8
push dword [esi]
call sym.BlackDesertLauncher.exe_curl_easy_cleanup
add esp, 4
xor edi, edi
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x10]
cmp eax, 0x10
jb 0x422df2
inc eax
lea ecx, [ebp - 0x24]
push eax
push dword [ebp - 0x24]
call fcn.00409cd0
mov ecx, dword [ebp - 0xc]
mov eax, edi
pop edi
pop esi
mov dword [ebp - 0x10], 0xf
mov dword [ebp - 0x14], 0
mov byte [ebp - 0x24], 0
pop ebx
mov dword fs:[0], ecx
mov esp, ebp
pop ebp
ret 0x10