Function at 0x420db0
Capabilities:
Create thread
Delete file
Get common file path

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4cf9a4
mov eax, dword fs:[0]
push eax
mov dword fs:[0], esp
sub esp, 0xc04
push ebx
push esi
push edi
call fcn.0041e170
mov eax, dword [ebp + 0x10]
mov dword [0x4ff018], eax
lea eax, [ebp - 0xb8]
push eax
push 0
push dword [ebp + 8]
mov dword [ebp - 0xb8], 0
push 0x41c230
push 0
push 0
call fcn.004a7224
add esp, 0x18
cmp byte [0x501ec3], 0
jne 0x420e21
nop
push 0x64
call dword [sym.imp.KERNEL32.dll_Sleep]
cmp byte [0x501ec3], 0
je 0x420e10
call fcn.0041cbd0
call fcn.0041d020
lea eax, [ebp - 0x608]
push eax
push 0
push 0
push 0x8005
push 0
call dword [sym.imp.SHELL32.dll_SHGetFolderPathW]
call fcn.00414240
cmp dword [eax + 0x50], 8
jb 0x420e53
mov ecx, dword [eax + 0x3c]
jmp 0x420e56
lea ecx, [eax + 0x3c]
push 2
push 0x4d56a4
push dword [eax + 0x4c]
push ecx
call fcn.00416440
mov esi, dword [sym.imp.SHLWAPI.dll_PathAppendW]
add esp, 0x10
test eax, eax
lea eax, [ebp - 0x608]
jne 0x420e80
push str.Black_Desert_Lab_
jmp 0x420e85
push str.Black_Desert_
push eax
call esi
push 0x208
lea eax, [ebp - 0x400]
push 0
push eax
call fcn.0049edb0
lea eax, [ebp - 0x608]
push eax
lea eax, [ebp - 0x400]
push 0x104
push eax
call fcn.004b0409
add esp, 0x18
lea eax, [ebp - 0x400]
push str.GameOptionLauncher.txt
push eax
call esi
xor eax, eax
mov dword [ebp - 0xa4], 0
mov dword [ebp - 0xa0], 0
mov dword [ebp - 0xa0], 7
mov dword [ebp - 0xa4], 0
mov word [ebp - 0xb4], ax
cmp word [ebp - 0x400], ax
jne 0x420f02
xor ecx, ecx
jmp 0x420f1f
lea ecx, [ebp - 0x400]
lea edx, [ecx + 2]
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x420f10
sub ecx, edx
sar ecx, 1
push ecx
lea eax, [ebp - 0x400]
push eax
lea ecx, [ebp - 0xb4]
call fcn.004096c0
mov dword [ebp - 4], 0
lea eax, [ebp - 0xb4]
cmp dword [ebp - 0xa0], 8
push 0x4d5710
cmovae eax, dword [ebp - 0xb4]
push eax
lea eax, [ebp + 0x10]
mov dword [ebp + 0x10], 0
push eax
call fcn.004a77d8
mov esi, dword [ebp + 0x10]
add esp, 0xc
test esi, esi
je 0x4214ef
push 0x100
lea eax, [ebp - 0x1f8]
push 0
push eax
call fcn.0049edb0
push 0x400
lea eax, [ebp - 0xc10]
push 0
push eax
call fcn.0049edb0
push 0x100
lea eax, [ebp - 0x1f8]
xor bh, bh
push eax
push 0x4d5714
push esi
xor bl, bl
call fcn.00419a60
add esp, 0x28
cmp eax, 0xffffffff
je 0x421100
nop
push 0x100
lea eax, [ebp - 0xc10]
push eax
push 0x4d571c
push dword [ebp + 0x10]
call fcn.00419a60
add esp, 0x10
cmp eax, 0xffffffff
je 0x421100
lea eax, [ebp - 0xc10]
push eax
call fcn.004b1a39
mov edi, eax
lea eax, [ebp - 0xc10]
push eax
call fcn.004b50df
add esp, 8
mov dword [ebp - 0x14], 0
cmp byte [ebp - 0x1f8], 0
fstp st(0)
mov dword [ebp - 0x10], 0
mov dword [ebp - 0x10], 0xf
mov dword [ebp - 0x14], 0
mov byte [ebp - 0x24], 0
jne 0x421031
xor ecx, ecx
jmp 0x421049
lea ecx, [ebp - 0x1f8]
lea edx, [ecx + 1]
nop word [eax + eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x421040
sub ecx, edx
push ecx
lea eax, [ebp - 0x1f8]
push eax
lea ecx, [ebp - 0x24]
call fcn.00409400
mov byte [ebp - 4], 1
lea ecx, [ebp - 0x24]
cmp dword [ebp - 0x10], 0x10
mov eax, 0x11
mov esi, dword [ebp - 0x14]
cmovae ecx, dword [ebp - 0x24]
cmp esi, eax
cmovb eax, esi
push eax
push str.launcherCurlTrace
push ecx
call fcn.00416bc0
add esp, 0xc
test eax, eax
jne 0x421096
cmp esi, 0x11
jb 0x421096
ja 0x421096
test edi, edi
setne bh
jmp 0x4210b0
lea eax, [ebp - 0x24]
push str.launcherHttpMode
push eax
call fcn.00419e50
add esp, 8
test al, al
je 0x4210b0
test edi, edi
setne bl
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x10
jb 0x4210c9
inc eax
lea ecx, [ebp - 0x24]
push eax
push dword [ebp - 0x24]
call fcn.00409cd0
push 0x100
lea eax, [ebp - 0x1f8]
mov dword [ebp - 0x10], 0xf
push eax
push 0x4d5714
push dword [ebp + 0x10]
mov dword [ebp - 0x14], 0
mov byte [ebp - 0x24], 0
call fcn.00419a60
add esp, 0x10
cmp eax, 0xffffffff
jne 0x420fc0
push str.Launcher
call fcn.0040baa0
add esp, 4
cmp bh, 1
jne 0x42111f
push str.Launcher
call fcn.0040a890
add esp, 4
cmp bl, 1
je 0x421131
call fcn.0040c7f0
cmp al, 1
jne 0x4214ef
push str.Launcher
call fcn.0040a8d0
mov edi, dword [0x501efc]
add esp, 4
test edi, edi
jne 0x42117c
push 0x58
call fcn.0042400f
add esp, 4
mov dword [ebp + 8], eax
mov byte [ebp - 4], 2
test eax, eax
je 0x421168
mov ecx, eax
call fcn.00421c50
mov edi, eax
jmp 0x42116a
xor edi, edi
mov byte [ebp - 4], 0
mov dword [0x501efc], edi
test edi, edi
je 0x4214dd
push 0
mov dword [ebp - 0x14], 0
lea ecx, [ebp - 0x24]
mov dword [ebp - 0x10], 0
push 0x4d3608
mov dword [ebp - 0x10], 0xf
mov dword [ebp - 0x14], 0
mov byte [ebp - 0x24], 0
call fcn.00409400
mov byte [ebp - 4], 3
lea eax, [ebp - 0x84]
push 0x4d3608
push str.PATCH_URL
push eax
call fcn.00414240
mov ecx, eax
call fcn.00418bd0
mov byte [ebp - 4], 4
cmp dword [ebp - 0x74], 0
je 0x421417
push 3
push 0
push 0x4d6670
lea ecx, [ebp - 0x84]
call fcn.004186b0
mov esi, eax
lea ecx, [ebp - 0x84]
push esi
push 0
lea eax, [ebp - 0x54]
push eax
call fcn.00419990
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x9c]
push 5
mov dword [ebp - 0x8c], 0
mov dword [ebp - 0x88], 0
push str.https
mov dword [ebp - 0x88], 0xf
mov dword [ebp - 0x8c], 0
mov byte [ebp - 0x9c], 0
call fcn.00409400
mov byte [ebp - 4], 6
lea ecx, [ebp - 0x6c]
push 4
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
push str.http
mov dword [ebp - 0x58], 0xf
mov dword [ebp - 0x5c], 0
mov byte [ebp - 0x6c], 0
call fcn.00409400
mov byte [ebp - 4], 7
cmp esi, 0xffffffff
je 0x421384
cmp dword [ebp - 0x88], 0x10
lea eax, [ebp - 0x9c]
lea ecx, [ebp - 0x54]
cmovae eax, dword [ebp - 0x9c]
push eax
call fcn.0041d570
test eax, eax
jne 0x421384
push 0xffffffffffffffff
push dword [ebp - 0x8c]
lea eax, [ebp - 0xe0]
push eax
lea ecx, [ebp - 0x84]
call fcn.00419990
mov byte [ebp - 4], 8
push eax
lea eax, [ebp - 0x6c]
push eax
lea eax, [ebp - 0xf8]
push eax
call fcn.00419ec0
add esp, 0xc
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x24]
push eax
call fcn.00404d10
mov byte [ebp - 4], 8
lea ecx, [ebp - 0xf8]
call fcn.00404470
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xe0]
call fcn.00404470
cmp dword [ebp - 0x10], 0x10
lea eax, [ebp - 0x24]
cmovae eax, dword [ebp - 0x24]
push eax
lea eax, [ebp - 0xe0]
push eax
call fcn.00409890
add esp, 8
mov byte [ebp - 4], 0xa
cmp dword [eax + 0x14], 8
jb 0x421330
mov eax, dword [eax]
push eax
push str.LAUNCHER
push str.__s__Change_CDN_URL_:__s
push 1
push 0xb97
call fcn.00423ab0
add esp, 0x14
mov byte [ebp - 4], 7
lea ecx, [ebp - 0xe0]
call fcn.004044e0
cmp dword [ebp - 0x10], 0x10
lea eax, [ebp - 0x24]
cmovae eax, dword [ebp - 0x24]
push eax
call fcn.00414240
mov ecx, eax
call fcn.004198f0
cmp dword [ebp - 0x10], 0x10
lea eax, [ebp - 0x24]
mov ecx, edi
cmovae eax, dword [ebp - 0x24]
push eax
call fcn.00422530
mov byte [ebp - 4], 6
mov eax, dword [ebp - 0x58]
cmp eax, 0x10
jb 0x42139d
inc eax
lea ecx, [ebp - 0x6c]
push eax
push dword [ebp - 0x6c]
call fcn.00409cd0
mov dword [ebp - 0x58], 0xf
mov dword [ebp - 0x5c], 0
mov byte [ebp - 0x6c], 0
mov byte [ebp - 4], 5
mov eax, dword [ebp - 0x88]
cmp eax, 0x10
jb 0x4213d1
inc eax
lea ecx, [ebp - 0x9c]
push eax
push dword [ebp - 0x9c]
call fcn.00409cd0
mov dword [ebp - 0x88], 0xf
mov dword [ebp - 0x8c], 0
mov byte [ebp - 0x9c], 0
mov byte [ebp - 4], 4
mov eax, dword [ebp - 0x40]
cmp eax, 0x10
jb 0x421405
inc eax
lea ecx, [ebp - 0x54]
push eax
push dword [ebp - 0x54]
call fcn.00409cd0
mov dword [ebp - 0x40], 0xf
mov dword [ebp - 0x44], 0
mov byte [ebp - 0x54], 0
mov byte [ebp - 4], 3
mov eax, dword [ebp - 0x70]
cmp eax, 0x10
jb 0x421468
mov ecx, dword [ebp - 0x84]
inc eax
cmp eax, 0x1000
jb 0x42145f
test cl, 0x1f
je 0x42143b
call fcn.004a3100
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x421447
call fcn.004a3100
sub ecx, eax
cmp ecx, 4
jae 0x421453
call fcn.004a3100
cmp ecx, 0x23
jbe 0x42145d
call fcn.004a3100
mov ecx, eax
push ecx
call fcn.0042400a
add esp, 4
mov dword [ebp - 0x70], 0xf
mov dword [ebp - 0x74], 0
mov byte [ebp - 0x84], 0
mov byte [ebp - 4], 0
mov eax, dword [ebp - 0x10]
cmp eax, 0x10
jb 0x4214cb
mov ecx, dword [ebp - 0x24]
inc eax
cmp eax, 0x1000
jb 0x4214c2
test cl, 0x1f
je 0x42149e
call fcn.004a3100
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x4214aa
call fcn.004a3100
sub ecx, eax
cmp ecx, 4
jae 0x4214b6
call fcn.004a3100
cmp ecx, 0x23
jbe 0x4214c0
call fcn.004a3100
mov ecx, eax
push ecx
call fcn.0042400a
add esp, 4
mov dword [ebp - 0x10], 0xf
mov dword [ebp - 0x14], 0
mov byte [ebp - 0x24], 0
call fcn.0040b000
mov byte [eax + 2], 0
call fcn.0040b000
mov byte [eax + 3], 0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0xa0]
cmp eax, 8
jb 0x421558
mov ecx, dword [ebp - 0xb4]
inc eax
cmp eax, 0x7fffffff
jbe 0x421514
call fcn.004a3100
add eax, eax
cmp eax, 0x1000
jb 0x42154f
test byte [ebp - 0xb4], 0x1f
je 0x42152b
call fcn.004a3100
mov eax, dword [ecx - 4]
cmp eax, ecx
jb 0x421537
call fcn.004a3100
sub ecx, eax
cmp ecx, 4
jae 0x421543
call fcn.004a3100
cmp ecx, 0x23
jbe 0x42154d
call fcn.004a3100
mov ecx, eax
push ecx
call fcn.0042400a
add esp, 4
xor eax, eax
mov dword [ebp - 0xa0], 7
push 3
mov dword [ebp - 0xa4], 0
mov word [ebp - 0xb4], ax
call sym.BlackDesertLauncher.exe_curl_version_info
add esp, 4
mov dword [ebp - 0x2c], 0
mov esi, eax
mov dword [ebp - 0x28], 0
xor eax, eax
mov dword [ebp - 0x28], 7
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x2c], 0
push eax
push 0x4d374c
mov word [ebp - 0x3c], ax
call fcn.004096c0
mov dword [ebp - 4], 0xb
test esi, esi
je 0x4216fa
cmp dword [esi + 4], 0
je 0x4216fa
call sym.BlackDesertLauncher.exe_curl_version
push eax
lea eax, [ebp - 0x6c]
push eax
call fcn.00409890
mov edi, eax
mov byte [ebp - 4], 0xc
lea eax, [ebp - 0x84]
push dword [esi + 4]
push eax
call fcn.00409890
add esp, 0x10
mov ecx, eax
mov byte [ebp - 4], 0xd
cmp dword [ecx + 0x14], 8
jb 0x4215ff
mov ecx, dword [ecx]
movups xmm0, xmmword [edi]
sub esp, 0x18
mov eax, esp
push ecx
movups xmmword [eax], xmm0
push str.CURL_VERSION:__s__s_
movq xmm0, qword [edi + 0x10]
movq qword [eax + 0x10], xmm0
lea eax, [ebp - 0x54]
push eax
call fcn.00423820
add esp, 0x24
mov edi, eax
mov byte [ebp - 4], 0xe
lea eax, [ebp - 0x3c]
cmp eax, edi
je 0x421665
mov eax, dword [ebp - 0x28]
cmp eax, 8
jb 0x421648
inc eax
lea ecx, [ebp - 0x3c]
push eax
push dword [ebp - 0x3c]
call fcn.00409d20
xor eax, eax
mov dword [ebp - 0x28], 7
push edi
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x2c], 0
mov word [ebp - 0x3c], ax
call fcn.00407620
mov byte [ebp - 4], 0xd
mov eax, dword [ebp - 0x40]
cmp eax, 8
jb 0x42167e
inc eax
lea ecx, [ebp - 0x54]
push eax
push dword [ebp - 0x54]
call fcn.00409d20
xor eax, eax
mov dword [ebp - 0x40], 7
mov dword [ebp - 0x44], 0
mov word [ebp - 0x54], ax
mov byte [ebp - 4], 0xc
mov eax, dword [ebp - 0x70]
cmp eax, 8
jb 0x4216b1
inc eax
lea ecx, [ebp - 0x84]
push eax
push dword [ebp - 0x84]
call fcn.00409d20
xor eax, eax
mov dword [ebp - 0x70], 7
mov dword [ebp - 0x74], 0
mov word [ebp - 0x84], ax
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x58]
cmp eax, 8
jb 0x4216e1
inc eax
lea ecx, [ebp - 0x6c]
push eax
push dword [ebp - 0x6c]
call fcn.00409d20
xor eax, eax
mov dword [ebp - 0x58], 7
mov dword [ebp - 0x5c], 0
mov word [ebp - 0x6c], ax
jmp 0x42177c
push str.Unknown
lea eax, [ebp - 0x54]
push str.CURL_VERSION:__s
push eax
call fcn.00423820
add esp, 0xc
mov edi, eax
mov byte [ebp - 4], 0xf
lea eax, [ebp - 0x3c]
cmp eax, edi
je 0x42174f
mov eax, dword [ebp - 0x28]
cmp eax, 8
jb 0x421732
inc eax
lea ecx, [ebp - 0x3c]
push eax
push dword [ebp - 0x3c]
call fcn.00409d20
xor eax, eax
mov dword [ebp - 0x28], 7
push edi
lea ecx, [ebp - 0x3c]
mov dword [ebp - 0x2c], 0
mov word [ebp - 0x3c], ax
call fcn.00407620
mov byte [ebp - 4], 0xb
mov eax, dword [ebp - 0x40]
cmp eax, 8
jb 0x421768
inc eax
lea ecx, [ebp - 0x54]
push eax
push dword [ebp - 0x54]
call fcn.00409d20
xor eax, eax
mov dword [ebp - 0x40], 7
mov dword [ebp - 0x44], 0
mov word [ebp - 0x54], ax
cmp dword [ebp - 0x28], 8
lea eax, [ebp - 0x3c]
cmovae eax, dword [ebp - 0x3c]
push eax
push str.LAUNCHER
push str.__s___s
push 1
push 0xbb2
call fcn.00423ab0
add esp, 0x14
test byte [esi + 0x10], 4
push str.LAUNCHER
je 0x4217ba
push str.__s__LAUNCHER_SSL_SUPPORT
push 1
push 0xbb6
jmp 0x4217c6
push str.__s__LAUNCHER_SSL_NOT_SUPPORT
push 3
push 0xbba
call fcn.00423ab0
add esp, 0x10
call fcn.0040bd60
cmp al, 1
jne 0x4217f0
push str.LAUNCHER
push str.__s__ENABLED_CurlTraceMode__PAPatchLauncher_
push 1
push 0xbbf
call fcn.00423ab0
add esp, 0x10
call fcn.0040bd70
cmp al, 1
jne 0x421812
push str.LAUNCHER
push str.__s__ENABLED_use_HTTP_Mode__PAPatchLauncher_
push 1
push 0xbc3
call fcn.00423ab0
add esp, 0x10
push 0x4d622c
push 0
push 0xbc5
call fcn.00423ab0
add esp, 0xc
call fcn.00420c80
test al, al
je 0x42191a
mov esi, dword [sym.imp.KERNEL32.dll_GetSystemTimeAsFileTime]
lea eax, [ebp - 0xc0]
push eax
call esi
call fcn.00414240
mov ecx, eax
call fcn.004145c0
call fcn.00414240
mov al, byte [eax + 0x9c]
test al, al
jne 0x42187f
push 0x4d56a4
call fcn.00414240
mov ecx, eax
call fcn.0041ebd0
test al, al
jne 0x42187f
call fcn.0041b500
test al, al
je 0x42191a
push 0x208
lea eax, [ebp - 0x810]
push 0
push eax
call fcn.0049edb0
add esp, 0xc
lea eax, [ebp - 0x810]
push 0x104
push eax
push 0
call dword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
lea eax, [ebp - 0x810]
push eax
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
call fcn.0041c130
call fcn.00414240
mov ecx, eax
call fcn.00419380
test eax, eax
setne al
movzx eax, al
push eax
call fcn.00407580
push 0
call fcn.004068e0
push str.Start_patchPatcher__
push 1
push 0xd07
call fcn.00423ab0
add esp, 0x14
call fcn.0041f820
push str.patcher_version_tmp
mov bl, al
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
test bl, bl
jne 0x421962
push str.error_patchPatcher__
push 3
push 0xd0f
call fcn.00423ab0
add esp, 0xc
or esi, 0xffffffff
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x28]
cmp eax, 8
jb 0x421939
inc eax
lea ecx, [ebp - 0x3c]
push eax
push dword [ebp - 0x3c]
call fcn.00409d20
mov ecx, dword [ebp - 0xc]
xor eax, eax
mov word [ebp - 0x3c], ax
mov eax, esi
pop edi
pop esi
mov dword [ebp - 0x28], 7
mov dword [ebp - 0x2c], 0
mov dword fs:[0], ecx
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push str.Start_launchPatcher__
push 1
push 0xd13
call fcn.00423ab0
sub esp, 0xc
lea eax, [ebp - 0x810]
mov ecx, esp
mov dword [ebp + 0x10], esp
push eax
call fcn.00403840
mov byte [ebp - 4], 0x10
mov byte [ebp - 4], 0xb
call fcn.0041ec30
add esp, 0x18
test al, al
jne 0x4219ac
push str.error_launchPatcher__
push 3
push 0xd17
jmp 0x421912
lea eax, [ebp - 0xc8]
push eax
call esi
push 0
push 0x989680
push dword [ebp - 0xbc]
push dword [ebp - 0xc0]
call fcn.00424990
push 0
push 0x989680
push dword [ebp - 0xc4]
mov esi, eax
mov edi, edx
push dword [ebp - 0xc8]
sub esi, 0xb6109100
sbb edi, 2
call fcn.00424990
sub eax, 0xb6109100
sbb edx, 2
sub eax, esi
sbb edx, edi
test edx, edx
jg 0x421a21
jl 0x421a09
cmp eax, 1
jae 0x421a21
mov eax, 0x3e8
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00405b00
xor esi, esi
jmp 0x42191d
xor eax, eax
push eax
call dword [sym.imp.KERNEL32.dll_Sleep]
call fcn.00405b00
xor esi, esi
jmp 0x42191d