Function at 0x426160
Capabilities:
Delete file
Read .ini file

Disassembly:
push 0xffffffffffffffff
push 0x4a2020
mov eax, dword fs:[0]
push eax
sub esp, 0x38
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5564a4]
xor eax, esp
push eax
lea eax, [esp + 0x4c]
mov dword fs:[0], eax
mov esi, ecx
call fcn.00420900
mov edx, dword [esp + 0x5c]
test edx, edx
mov ebp, eax
mov dword [esp + 0x3c], ebp
lea ecx, [esi + 0xc]
jne 0x4261a3
xor eax, eax
jmp 0x4261b3
mov eax, edx
lea edi, [eax + 1]
mov bl, byte [eax]
add eax, 1
test bl, bl
jne 0x4261a8
sub eax, edi
push eax
push edx
call fcn.004017c0
mov eax, dword [str.R3Engine.ini]
push ecx
mov ecx, esp
mov dword [esp + 0x60], esp
push eax
call fcn.00401d30
lea ecx, [esp + 0x60]
push ecx
call fcn.004051d0
mov eax, dword [eax]
mov edx, dword [str.LauncherVersion]
add esp, 8
push eax
mov eax, dword [str.Launcher]
push 0
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
movzx edi, ax
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426214
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esi + 0x10]
movzx ecx, di
push ecx
push str.Version_:__d
push edx
call fcn.00427200
push eax
call fcn.00426f60
add esp, 0x10
test di, di
jne 0x4262e0
mov eax, dword [str.R3Engine.ini]
push ecx
mov ecx, esp
mov dword [esp + 0x4c], esp
push eax
call fcn.00401d30
lea ecx, [esp + 0x3c]
push ecx
call fcn.004051d0
mov eax, dword [eax]
mov edx, dword [0x548100]
mov ecx, dword [str.Launcher]
add esp, 8
push eax
mov eax, dword [str.LauncherVersion]
push edx
push eax
push ecx
call dword [sym.imp.KERNEL32.dll_WritePrivateProfileStringA]
mov edi, eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x426296
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
jne 0x4262c3
push 0x1f4
push ecx
mov ecx, esp
mov dword [esp + 0x64], esp
push 0x50
push ecx
call fcn.00427880
mov ecx, eax
call fcn.004276a0
mov ecx, ebp
call fcn.0040adf0
xor eax, eax
jmp 0x426e56
mov edx, dword [esi + 0x10]
mov edi, 0x2a5
push edi
push str.Set_Version_:__d
push edx
call fcn.00427200
push eax
call fcn.00426f60
add esp, 0x10
call fcn.0045f338
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4262fa
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x14], eax
movzx ebx, di
push ebx
lea ecx, [esp + 0x18]
push 0x500a30
push ecx
mov dword [esp + 0x60], 0
call fcn.00401990
mov edx, dword [str.update.dat]
add esp, 8
mov ecx, esp
mov dword [esp + 0x60], esp
push edx
call fcn.00401d30
lea eax, [esp + 0x60]
push eax
call fcn.004051d0
mov eax, dword [eax]
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
add esp, 8
push eax
call edi
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426372
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [str.RF.lc]
push ecx
mov ecx, esp
mov dword [esp + 0x4c], esp
push edx
call fcn.00401d30
lea eax, [esp + 0x3c]
push eax
call fcn.004051d0
mov eax, dword [eax]
add esp, 8
push eax
call edi
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4263b7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
call fcn.0045f338
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4263d1
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea edi, [eax + 0x10]
mov dword [esp + 0x1c], edi
mov byte [esp + 0x54], 1
call fcn.0045f338
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x426400
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
lea ebp, [eax + 0x10]
mov dword [esp + 0x5c], ebp
mov byte [esp + 0x54], 2
call fcn.00421b80
mov ecx, eax
call fcn.00435df0
mov ecx, dword [esi + 0x10]
push eax
push str.Launcher_Patch_Server_Area_:__d
push ecx
call fcn.00427200
push eax
call fcn.00426f60
mov ecx, dword [0x55865c]
add esp, 0x10
push 0
call fcn.0043f4a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x30]
call eax
test eax, eax
je case.0x42647d.0
call fcn.0041eb80
mov ecx, eax
call fcn.0041e1e0
cmp eax, 1
jne 0x42652c
call fcn.00421b80
mov ecx, eax
call fcn.00435df0
cmp eax, 3
ja case.default.0x42647d
jmp dword [eax*4 + 0x426e6c]
push 0x501f3c
lea edx, [esp + 0x60]
push edx
jmp 0x426524
push 0x501f38
lea eax, [esp + 0x60]
push eax
jmp 0x426524
push 0x4fdeb8
jmp 0x42651f
lea eax, [ebp - 0x10]
mov byte [esp + 0x54], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4264ca
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [edi - 0x10]
mov byte [esp + 0x54], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4264eb
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x54], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426513
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
jmp 0x426e56
push 0x501f34
lea ecx, [esp + 0x60]
push ecx
call fcn.00401990
add esp, 8
mov ecx, dword [0x55865c]
push 0
call fcn.0043f4a0
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0x30]
call eax
test eax, eax
je 0x426587
call fcn.0041eb80
mov ecx, eax
call fcn.0041e1e0
test eax, eax
jne 0x4265b8
call fcn.00421b80
mov ecx, eax
call fcn.00435df0
push eax
call fcn.00421100
mov ecx, dword [esi + 0x10]
add esp, 4
mov ebp, eax
push ebp
push str.Launcher_Patch_ServerIP_:__s
push ecx
call fcn.00427200
push eax
call fcn.00426f60
add esp, 0x10
jmp 0x4265bc
call fcn.00421b80
mov ecx, eax
call fcn.00435df0
push eax
call fcn.00421100
mov edx, dword [esi + 0x10]
add esp, 4
mov ebp, eax
push ebp
push str.Launcher_Patch_ServerIP_:__s
push edx
call fcn.00427200
push eax
call fcn.00426f60
add esp, 0x10
jmp 0x4265bc
mov ebp, dword [esp + 0x5c]
mov eax, dword [esi + 4]
cmp dword [eax - 0xc], 0
push ebx
lea ecx, [esp + 0x20]
jne 0x4265d2
mov eax, dword [esp + 0x60]
push eax
push ebp
jmp 0x4265da
mov edx, dword [esp + 0x60]
push edx
mov ebp, eax
push eax
push str.https:___s:_s___lau__d
push ecx
call fcn.00401990
mov ebx, dword [esp + 0x30]
mov edx, dword [esi + 0x10]
add esp, 0x14
push ebx
push str.Launcher_Patch_ServerURL_:__s
push edx
call fcn.00427200
push eax
call fcn.00426f60
mov eax, dword [str.update.dat]
add esp, 0x10
push 1
push ecx
mov ecx, esp
mov dword [esp + 0x50], esp
push eax
call fcn.00401d30
lea ecx, [esp + 0x40]
push ecx
call fcn.004051d0
mov eax, dword [eax]
add esp, 8
push eax
push ebx
call fcn.00408a60
mov edi, eax
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
add esp, 0xc
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x426653
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
test edi, edi
mov ecx, dword [str.update.dat]
mov edx, dword [esi + 0x10]
push ecx
jne 0x4266a2
push str.Launcher_UpdateData_Download_Faile__s
push edx
call fcn.00427200
push eax
call fcn.00426f60
mov eax, dword [esp + 0x6c]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x54], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42669a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
jmp 0x4264cd
push str.Success_download_file_:__s
push edx
call fcn.00427200
push eax
call fcn.00426f60
mov eax, dword [str.update.dat]
add esp, 0xc
mov ecx, esp
mov dword [esp + 0x4c], esp
push eax
call fcn.00401d30
lea ecx, [esp + 0x3c]
push ecx
call fcn.004051d0
mov eax, dword [eax]
mov edx, dword [str.UpdateFileNumber]
add esp, 8
push eax
mov eax, dword [str.Update]
push 0
push edx
push eax
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
mov edi, eax
mov eax, dword [esp + 0x38]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42670e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esi + 0x10]
push edi
push str.Number_of_files_:__d
push ecx
call fcn.00427200
push eax
call fcn.00426f60
add esp, 0x10
test edi, edi
jbe 0x426de3
push 0x1f4
push ecx
mov edx, esp
mov dword [esp + 0x50], esp
push 0x6d
push edx
call fcn.00427880
mov ecx, eax
call fcn.004276a0
mov ecx, dword [esp + 0x44]
call fcn.0040adf0
mov eax, dword [esp + 0x14]
mov ecx, dword [str.NewVersion]
mov edx, dword [str.Update]
push eax
mov eax, dword [str.update.dat]
push ecx
push edx
push ecx
mov ecx, esp
mov dword [esp + 0x58], esp
push eax
call fcn.00401d30
lea ecx, [esp + 0x50]
push ecx
call fcn.004051d0
add esp, 8
mov eax, dword [eax]
push eax
lea edx, [esp + 0x3c]
push edx
mov byte [esp + 0x68], 3
call fcn.004053e0
add esp, 0x14
mov eax, dword [esp + 0x40]
add eax, 0xfffffff0
mov byte [esp + 0x54], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4267be
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x2c]
push ecx
call fcn.00476c14
mov edx, dword [esp + 0x30]
add esp, 4
push edx
mov dword [esi + 8], eax
mov eax, dword [esi + 0x10]
push str.Version_of_new_launcher_:__s
push eax
call fcn.00427200
push eax
call fcn.00426f60
add esp, 0x10
call fcn.0045f338
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x426804
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
mov byte [esp + 0x54], 6
call fcn.0045f338
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x426833
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x24], eax
mov ecx, dword [esi + 0x10]
push 1
push str._Not_Use_updatecfg.dat_Number_of_patch_server_:__d
push ecx
mov byte [esp + 0x60], 7
call fcn.00427200
push eax
call fcn.00426f60
push 1
lea edx, [esp + 0x3c]
push str.Server_d
push edx
call fcn.00401990
mov eax, dword [esp + 0x44]
mov ecx, dword [esi + 0x10]
add esp, 0x1c
push eax
push str.Rnadom_select_index_:__s
push ecx
call fcn.00427200
push eax
call fcn.00426f60
mov edx, dword [esp + 0x6c]
push edx
push ebp
lea eax, [esp + 0x3c]
push str.https:___s:_s_
push eax
call fcn.00401990
mov ebp, dword [esp + 0x44]
mov ecx, dword [esi + 0x10]
add esp, 0x20
push ebp
push str.Patch_Server_IP_:__s
push ecx
call fcn.00427200
push eax
call fcn.00426f60
add esp, 0x10
call fcn.0045f338
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x4268d9
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x20], eax
mov byte [esp + 0x54], 8
call fcn.0045f338
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x426908
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x38], eax
mov byte [esp + 0x54], 9
call fcn.0045f338
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x426937
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x34], eax
push 1
lea ecx, [esp + 0x24]
push str.UpdateFile_d
push ecx
mov byte [esp + 0x60], 0xa
call fcn.00401990
mov edx, dword [esp + 0x2c]
mov eax, dword [str.Update]
add esp, 0xc
push str.NULL
push edx
mov edx, dword [str.update.dat]
push eax
push ecx
mov ecx, esp
mov dword [esp + 0x58], esp
push edx
call fcn.00401d30
lea eax, [esp + 0x54]
push eax
call fcn.004051d0
add esp, 8
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x28]
mov bl, 0xb
push ecx
mov byte [esp + 0x68], bl
call fcn.004053e0
add esp, 0x14
push eax
lea ecx, [esp + 0x3c]
mov byte [esp + 0x58], 0xc
call fcn.00402cc0
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
mov byte [esp + 0x54], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4269d9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
mov byte [esp + 0x54], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4269fe
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x38]
push edi
push ebp
lea ecx, [esp + 0x3c]
push 0x4f9c00
push ecx
call fcn.00401990
add esp, 0xc
add edi, 0xfffffff0
mov dword [esp + 0x4c], esp
mov ebp, esp
push edi
mov dword [esp + 0x50], edi
call fcn.00402280
lea edx, [esp + 0x38]
add esp, 4
add eax, 0x10
push edx
mov dword [ebp], eax
call fcn.004257e0
add esp, 8
mov byte [esp + 0x54], 0xd
call fcn.0045f338
xor ecx, ecx
test eax, eax
setne cl
test ecx, ecx
jne 0x426a5e
push 0x80004005
call fcn.00401090
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xc]
call eax
add eax, 0x10
mov dword [esp + 0x18], eax
mov ecx, dword [esp + 0x30]
push ecx
lea edx, [esp + 0x1c]
push str.._s
mov bl, 0xe
push edx
mov byte [esp + 0x60], bl
call fcn.00401990
mov eax, dword [esp + 0x24]
add esp, 8
add eax, 0xfffffff0
mov dword [esp + 0x48], esp
mov edi, esp
push eax
call fcn.00402280
add eax, 0x10
mov dword [edi], eax
lea eax, [esp + 0x4c]
add esp, 4
push eax
call fcn.004051d0
add esp, 8
mov eax, dword [eax]
push eax
lea ecx, [esp + 0x1c]
mov byte [esp + 0x58], 0xf
call fcn.00401cf0
mov eax, dword [esp + 0x44]
add eax, 0xfffffff0
mov byte [esp + 0x54], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426ae8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x18]
push edi
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
mov ebp, dword [esp + 0x34]
mov ecx, dword [esi + 0x10]
push ebp
push str.Download_file_URL:__s
push ecx
call fcn.00427200
push eax
call fcn.00426f60
push 1
push edi
push ebp
call fcn.00408a60
add esp, 0x1c
test eax, eax
jne 0x426ce8
push 0x1f4
push ecx
mov edx, esp
mov dword [esp + 0x4c], esp
push 0x4b
push edx
call fcn.00427880
mov ecx, eax
call fcn.004276a0
mov ecx, dword [esp + 0x44]
call fcn.0040adf0
lea eax, [esp + 0x44]
push 0x4b
push eax
call fcn.00427880
mov ecx, eax
call fcn.004276a0
mov ecx, dword [eax]
mov edx, dword [esi + 0x10]
push ecx
push str.Download_file_False:__s
push edx
mov byte [esp + 0x60], 0x10
call fcn.00427200
push eax
call fcn.00426f60
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
add esp, 0x10
mov byte [esp + 0x54], bl
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426b9a
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add edi, 0xfffffff0
mov byte [esp + 0x54], 0xd
lea ecx, [edi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426bbb
mov ecx, dword [edi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push edi
call edx
mov eax, dword [esp + 0x30]
add eax, 0xfffffff0
mov byte [esp + 0x54], 0xa
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426be0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebp - 0x10]
mov byte [esp + 0x54], 9
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426c01
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x48]
mov byte [esp + 0x54], 8
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426c23
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x20]
add eax, 0xfffffff0
mov byte [esp + 0x54], 7
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426c48
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x24]
add eax, 0xfffffff0
mov byte [esp + 0x54], 6
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426c6d
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x54], 5
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426c92
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x2c]
add eax, 0xfffffff0
mov byte [esp + 0x54], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426cb7
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
mov byte [esp + 0x54], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426cdc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x1c]
add eax, 0xfffffff0
jmp 0x4264cd
mov ecx, dword [esi + 0x10]
push edi
push str.Success_download_file_:__s
push ecx
call fcn.00427200
push eax
call fcn.00426f60
add esp, 0xc
lea eax, [edi - 0x10]
mov dword [esp + 0x4c], esp
mov ebp, esp
push eax
call fcn.00402280
add eax, 0x10
add esp, 4
mov ecx, esi
mov dword [ebp], eax
call fcn.00425ab0
cmp eax, 1
jne 0x426d97
mov ecx, esi
call fcn.00425d20
lea ecx, [esp + 0x18]
mov esi, eax
call fcn.00401640
lea ecx, [esp + 0x30]
call fcn.00401640
lea ecx, [esp + 0x34]
call fcn.00401640
lea ecx, [esp + 0x38]
call fcn.00401640
lea ecx, [esp + 0x20]
call fcn.00401640
lea ecx, [esp + 0x24]
call fcn.00401640
lea ecx, [esp + 0x28]
call fcn.00401640
lea ecx, [esp + 0x2c]
call fcn.00401640
lea ecx, [esp + 0x5c]
call fcn.00401640
lea ecx, [esp + 0x1c]
call fcn.00401640
lea ecx, [esp + 0x14]
call fcn.00401640
mov eax, esi
jmp 0x426e56
lea ecx, [esp + 0x18]
call fcn.00401640
lea ecx, [esp + 0x30]
call fcn.00401640
lea ecx, [esp + 0x34]
call fcn.00401640
lea ecx, [esp + 0x38]
call fcn.00401640
lea ecx, [esp + 0x20]
call fcn.00401640
lea ecx, [esp + 0x24]
call fcn.00401640
lea ecx, [esp + 0x28]
call fcn.00401640
lea ecx, [esp + 0x2c]
call fcn.00401640
mov ebx, dword [esp + 0x1c]
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
mov byte [esp + 0x54], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x426e08
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
lea eax, [ebx - 0x10]
mov byte [esp + 0x54], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426e29
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x54], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426e51
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 1
mov ecx, dword [esp + 0x4c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x44
ret 4
jmp 0x426160