Function at 0x425d80
Capabilities:
Enumerate files on windows
Resolve function by parsing pe exports
Set file attributes

Disassembly:
push 0xffffffffffffffff
push 0x47389c
mov eax, dword fs:[0]
push eax
sub esp, 0x2f8
mov eax, dword [0x4968d4]
xor eax, esp
mov dword [esp + 0x2f4], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x4968d4]
xor eax, esp
push eax
lea eax, [esp + 0x30c]
mov dword fs:[0], eax
mov eax, dword [esp + 0x744]
mov edi, ecx
mov dword [esp + 0x50], edi
mov dword [esp + 0x58], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.00454fd9
push 0xc
push str.Patch_Exp_Version__2_0_0__d_
push 1
call fcn.0042b8f0
mov eax, dword [esp + 0x334]
mov edx, dword [esp + 0x330]
mov ecx, dword [esp + 0x32c]
mov dword [edi + 0x4c], eax
lea eax, [esp + 0x43c]
add esp, 0x10
mov dword [edi + 0x48], edx
mov dword [edi + 0x44], ecx
lea edx, [eax + 1]
xor ebx, ebx
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x425e13
sub eax, edx
push eax
lea ecx, [esp + 0x430]
push ecx
lea esi, [edi + 0x50]
mov ecx, esi
call fcn.0040a9c0
mov edx, dword [esp + 0x738]
mov eax, dword [esi]
mov dword [edi + 0x70], edx
mov ecx, dword [eax - 0xc]
lea eax, [ecx - 1]
cmp eax, ebx
jl 0x425fce
mov edx, dword [esi]
cmp eax, dword [edx - 0xc]
jg 0x425fce
mov al, byte [edx + eax]
cmp al, 0x2f
je 0x425e87
lea eax, [ecx - 1]
cmp eax, ebx
jl 0x425fce
mov ecx, edx
cmp eax, dword [ecx - 0xc]
jg 0x425fce
cmp byte [ecx + eax], 0x5c
je 0x425e87
push 1
push 0x47a8f0
mov ecx, esi
call fcn.00420800
mov ecx, dword [esi]
push str.backup_
push ecx
lea eax, [edi + 0x54]
push 0x47ac30
push eax
call fcn.00420ca0
mov edx, dword [esi]
push str.backup_temp_
push edx
lea eax, [edi + 0x58]
push 0x47ac30
push eax
call fcn.00420ca0
mov ecx, dword [esi]
push str.backupoutput_
push ecx
lea edx, [edi + 0x5c]
push 0x47ac30
push edx
call fcn.00420ca0
add esp, 0x30
mov ecx, edi
call fcn.00424e30
mov eax, dword [0x49ec04]
mov edx, dword [eax + 0xc]
mov ecx, 0x49ec04
call edx
add eax, 0x10
mov dword [esp + 0x4c], eax
mov eax, dword [esi]
push str.version.ini
push eax
lea ecx, [esp + 0x54]
push 0x47ac30
push ecx
mov dword [esp + 0x324], ebx
call fcn.00420ca0
mov ebp, dword [esp + 0x5c]
push ebx
push ebp
call fcn.00455f22
xor edx, edx
add esp, 0x18
cmp eax, 0xffffffff
setne dl
cmp dword [esp + 0x740], ebx
mov esi, edx
jne 0x425f60
push 0x80
push ebp
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
jne 0x425f60
mov edi, dword [sym.imp.KERNEL32.dll_GetLastError]
call edi
push eax
push str.Failed_to_SetFileAttribute_version.ini_file___LastErrorCode__d_
call fcn.0042bb70
add esp, 8
call edi
push eax
push str.Failed_to_SetFileAttribute_version.ini_file___LastErrorCode__d_
push 8
call fcn.0042b8f0
add esp, 0xc
push ebx
push ebx
lea eax, [esp + 0x330]
push ebp
push eax
call fcn.0042cca0
add esp, 0x10
cmp eax, ebx
je 0x425fd8
cmp esi, ebx
je 0x425f84
cmp dword [esp + 0x740], ebx
jne 0x425fd8
push str.Failed_to_download_version.ini_file
call fcn.0042bb70
push str.Failed_to_download_version.ini_file
push 8
call fcn.0042b8f0
add esp, 0xc
lea eax, [ebp - 0x10]
mov dword [esp + 0x314], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x425fc4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 3
jmp 0x4278c2
push 0x80070057
call fcn.00402a10
lea ecx, [esp + 0xa8]
call fcn.0041e6c0
mov dword [esp + 0x28], ebx
mov ecx, dword [ebp - 8]
mov eax, 1
sub eax, dword [ebp - 4]
mov byte [esp + 0x314], 1
or ecx, eax
jge 0x42600d
push ebx
lea ecx, [esp + 0x50]
call fcn.00407e10
mov ebp, dword [esp + 0x4c]
mov edi, 0xf
mov eax, ebp
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], 0
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x426024
sub eax, edx
push eax
push ebp
lea ecx, [esp + 0x64]
call fcn.004092c0
lea ecx, [esp + 0x28]
push ecx
lea edx, [esp + 0x60]
push edx
lea ecx, [esp + 0xb0]
mov byte [esp + 0x31c], 2
call fcn.0041e940
mov esi, 0x10
cmp dword [esp + 0x74], esi
mov byte [esp + 0x314], 1
jb 0x426078
mov eax, dword [esp + 0x60]
push eax
call fcn.00434567
add esp, 4
push 0xd
push str.LatestVersion
lea ecx, [esp + 0x80]
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], 0
call fcn.004092c0
lea eax, [esp + 0x530]
mov byte [esp + 0x314], 3
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], 0
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x4260c0
sub eax, edx
push eax
lea ecx, [esp + 0x534]
push ecx
lea ecx, [esp + 0x64]
call fcn.004092c0
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0xb0]
mov byte [esp + 0x31c], 4
call fcn.0041e670
cmp dword [esp + 0x74], esi
mov ecx, dword [esp + 0x58]
mov dword [ecx], eax
jb 0x426114
mov edx, dword [esp + 0x60]
push edx
call fcn.00434567
add esp, 4
cmp dword [esp + 0x90], esi
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], 0
mov byte [esp + 0x314], 1
jb 0x42613f
mov eax, dword [esp + 0x7c]
push eax
call fcn.00434567
add esp, 4
push 0xe
push str.MinimalVersion
lea ecx, [esp + 0x80]
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], 0
call fcn.004092c0
lea eax, [esp + 0x530]
mov byte [esp + 0x314], 5
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], 0
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x426187
sub eax, edx
push eax
lea ecx, [esp + 0x534]
push ecx
lea ecx, [esp + 0x64]
call fcn.004092c0
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0xb0]
mov byte [esp + 0x31c], 6
call fcn.0041e670
cmp dword [esp + 0x74], esi
mov ecx, dword [esp + 0x58]
mov dword [ecx + 4], eax
jb 0x4261dc
mov edx, dword [esp + 0x60]
push edx
call fcn.00434567
add esp, 4
cmp dword [esp + 0x90], esi
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], 0
mov byte [esp + 0x314], 1
jb 0x426207
mov eax, dword [esp + 0x7c]
push eax
call fcn.00434567
add esp, 4
push 0xa
push str.OwnVersion
lea ecx, [esp + 0x80]
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], 0
call fcn.004092c0
lea eax, [esp + 0x530]
mov byte [esp + 0x314], 7
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], 0
lea edx, [eax + 1]
nop
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x426250
sub eax, edx
push eax
lea ecx, [esp + 0x534]
push ecx
lea ecx, [esp + 0x64]
call fcn.004092c0
lea edx, [esp + 0x78]
push edx
lea eax, [esp + 0x60]
push eax
lea ecx, [esp + 0xb0]
mov byte [esp + 0x31c], 8
call fcn.0041e670
cmp dword [esp + 0x74], esi
mov ecx, dword [esp + 0x58]
mov dword [ecx + 8], eax
jb 0x4262a5
mov edx, dword [esp + 0x60]
push edx
call fcn.00434567
add esp, 4
cmp dword [esp + 0x90], esi
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], 0
mov byte [esp + 0x314], 1
jb 0x4262d0
mov eax, dword [esp + 0x7c]
push eax
call fcn.00434567
add esp, 4
mov ecx, dword [esp + 0x58]
cmp dword [ecx + 8], ebx
jne 0x4263a5
push 0xb
push str.CoreVersion
lea ecx, [esp + 0x80]
mov dword [esp + 0x98], edi
mov dword [esp + 0x94], ebx
mov byte [esp + 0x84], 0
call fcn.004092c0
lea eax, [esp + 0x530]
mov byte [esp + 0x314], 9
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], 0
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x426325
sub eax, edx
push eax
lea edx, [esp + 0x534]
push edx
lea ecx, [esp + 0x64]
call fcn.004092c0
lea eax, [esp + 0x78]
push eax
lea ecx, [esp + 0x60]
push ecx
lea ecx, [esp + 0xb0]
mov byte [esp + 0x31c], 0xa
call fcn.0041e670
cmp dword [esp + 0x74], esi
mov edx, dword [esp + 0x58]
mov dword [edx + 8], eax
jb 0x42637a
mov eax, dword [esp + 0x60]
push eax
call fcn.00434567
add esp, 4
cmp dword [esp + 0x90], esi
mov dword [esp + 0x74], edi
mov dword [esp + 0x70], ebx
mov byte [esp + 0x60], 0
mov byte [esp + 0x314], 1
jb 0x4263a5
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.00434567
add esp, 4
mov eax, dword [esp + 0x58]
cmp dword [eax], ebx
jne 0x426404
cmp dword [eax + 4], ebx
jne 0x426404
cmp dword [eax + 8], ebx
jne 0x426404
push str.Wrong_version.ini
call fcn.0042bb70
push str.Wrong_version.ini
push 8
call fcn.0042b8f0
add esp, 0xc
lea ecx, [esp + 0xa8]
mov byte [esp + 0x314], 0
call fcn.0041e6e0
lea eax, [ebp - 0x10]
mov dword [esp + 0x314], 0xffffffff
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x425fb8
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
lea ecx, [esp + 0x18]
push ecx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 6
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push str.server
mov byte [esp + 0x33c], 0xd
mov byte [ecx + 4], 0
call fcn.004092c0
sub esp, 0x1c
mov ecx, esp
lea eax, [esp + 0x670]
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
mov byte [esp + 0x350], 0xe
mov dword [esp + 0x64], esp
mov byte [ecx + 4], 0
lea esi, [eax + 1]
lea esp, [esp]
mov dl, byte [eax]
add eax, 1
test dl, dl
jne 0x426480
sub eax, esi
push eax
lea edx, [esp + 0x674]
push edx
call fcn.004092c0
lea ecx, [esp + 0xe4]
mov byte [esp + 0x350], 0xd
call fcn.0041ea00
mov eax, dword [esp + 0x1c]
cmp eax, ebx
je 0x4264d0
mov ecx, dword [esp + 0x20]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x426531
push str.Failed_to_obtain_download_urls_from_version.ini
call fcn.0042bb70
push str.Failed_to_obtain_download_urls_from_version.ini
push 8
call fcn.0042b8f0
mov eax, dword [esp + 0x3c]
add esp, 0xc
cmp eax, ebx
je 0x4264fa
push eax
call fcn.00434567
add esp, 4
lea ecx, [esp + 0x3c]
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
call fcn.00406c50
lea ecx, [esp + 0x18]
call fcn.00406c50
lea ecx, [esp + 0xa8]
mov byte [esp + 0x314], 0
call fcn.0041e6e0
jmp 0x425f9d
mov edx, dword [0x49ec04]
mov eax, dword [edx + 0xc]
mov ecx, 0x49ec04
call eax
add eax, 0x10
mov dword [esp + 0x54], eax
lea ecx, [esp + 0x634]
push ecx
lea edx, [esp + 0x58]
push str._s_POD
push edx
mov byte [esp + 0x320], 0xf
call fcn.00420ca0
add esp, 0xc
lea eax, [esp + 0x3c]
push eax
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 3
mov dword [ecx + 0x18], edi
mov dword [ecx + 0x14], ebx
push 0x484478
mov byte [ecx + 4], 0
call fcn.004092c0
mov edx, dword [esp + 0x74]
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x64], esp
push edx
mov byte [esp + 0x354], 0x10
call fcn.00409280
lea ecx, [esp + 0xe4]
mov byte [esp + 0x350], 0xf
call fcn.0041ea00
mov ebp, dword [esp + 0x40]
cmp ebp, ebx
je 0x4265e2
mov esi, dword [esp + 0x44]
mov ecx, esi
sub ecx, ebp
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x426634
lea ecx, [esp + 0x3c]
push ecx
sub esp, 0x1c
mov ecx, esp
mov dword [esp + 0x34], esp
push 0x484478
call fcn.00409280
sub esp, 0x1c
lea edx, [esp + 0x670]
mov ecx, esp
mov dword [esp + 0x64], esp
push edx
mov byte [esp + 0x354], 0x11
call fcn.00409280
lea ecx, [esp + 0xe4]
mov byte [esp + 0x350], 0xf
call fcn.0041ea00
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x40]
cmp ebp, ebx
je 0x426655
mov ecx, esi
sub ecx, ebp
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
jne 0x4267f8
lea ecx, [esp + 0x18]
xor esi, esi
call fcn.00406c90
test eax, eax
jbe 0x42668e
mov dword [esp + 0x28], 1
lea esp, [esp]
lea ecx, [esp + 0x28]
push ecx
lea ecx, [esp + 0x30]
call fcn.004223a0
lea ecx, [esp + 0x18]
add esi, 1
call fcn.00406c90
cmp esi, eax
jb 0x426670
mov esi, dword [esp + 0x50]
mov ebp, dword [esi + 0x7c]
add esi, 0x74
cmp dword [esi + 4], ebp
jbe 0x4266a2
call fcn.0045520c
mov edi, dword [esi + 4]
cmp edi, dword [esi + 8]
jbe 0x4266af
call fcn.0045520c
cmp edi, ebp
je 0x4266d6
mov ecx, dword [esi + 8]
push edi
push ecx
push ebp
call fcn.00421ae0
mov edx, dword [esp + 0x20]
push edx
mov edi, eax
mov eax, dword [esi + 8]
push esi
push eax
push edi
call fcn.00421050
add esp, 0x1c
mov dword [esi + 8], edi
mov ebp, dword [esp + 0x30]
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x78]
cmp ecx, ebx
je 0x4266f6
mov eax, dword [eax + 0x7c]
sub eax, ecx
sar eax, 2
cmp eax, 3
jae 0x426a48
cmp dword [esp + 0x1c], ebx
je 0x426a48
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x1c]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x426a48
cmp ebp, ebx
je 0x426a48
mov ecx, dword [esp + 0x34]
sub ecx, ebp
sar ecx, 2
je 0x426a48
lea ecx, [esp + 0x2c]
xor edi, edi
xor esi, esi
call fcn.00406ef0
test eax, eax
jbe 0x42677e
lea esp, [esp]
cmp ebp, ebx
je 0x426761
mov eax, dword [esp + 0x34]
sub eax, ebp
sar eax, 2
cmp esi, eax
jb 0x42676a
call fcn.0045520c
mov ebp, dword [esp + 0x30]
add edi, dword [ebp + esi*4]
lea ecx, [esp + 0x2c]
add esi, 1
call fcn.00406ef0
cmp esi, eax
jb 0x426750
push ebx
call fcn.00454f9d
mov ecx, eax
add esp, 4
mov esi, edx
mov eax, edi
cdq
push edx
push eax
push esi
push ecx
call fcn.00456bd0
mov edi, eax
lea ecx, [esp + 0x2c]
add edi, 1
xor esi, esi
call fcn.00406ef0
test eax, eax
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
jbe 0x4267e9
test ebp, ebp
je 0x4267c2
mov eax, ebx
sub eax, ebp
sar eax, 2
cmp esi, eax
jb 0x4267cf
call fcn.0045520c
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0x30]
mov eax, dword [ebp + esi*4]
cmp edi, eax
jle 0x4267e9
lea ecx, [esp + 0x2c]
sub edi, eax
add esi, 1
call fcn.00406ef0
cmp esi, eax
jb 0x4267b3
test ebp, ebp
jne 0x42689a
xor ebx, ebx
jmp 0x42689f
xor edi, edi
lea ebx, [ebx]
cmp dword [esp + 0x1c], ebx
je 0x42668e
mov ecx, dword [esp + 0x20]
sub ecx, dword [esp + 0x1c]
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jae 0x42668e
cmp ebp, ebx
je 0x42684c
sub esi, ebp
mov ecx, esi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp edi, eax
jb 0x426857
lea edx, [esp + 0x28]
mov dword [esp + 0x28], ebx
push edx
jmp 0x426881
push edi
lea ecx, [esp + 0x40]
call fcn.00406cc0
cmp dword [eax + 0x18], 0x10
jb 0x42686c
mov eax, dword [eax + 4]
jmp 0x42686f
add eax, 4
push eax
call fcn.00454c4f
mov dword [esp + 0x2c], eax
add esp, 4
lea eax, [esp + 0x28]
push eax
lea ecx, [esp + 0x30]
call fcn.004223a0
mov esi, dword [esp + 0x44]
mov ebp, dword [esp + 0x40]
add edi, 1
jmp 0x426800
sub ebx, ebp
sar ebx, 2
cmp esi, ebx
jne 0x4268a5
xor esi, esi
mov edi, dword [esp + 0x1c]
test edi, edi
je 0x4268ca
mov ecx, dword [esp + 0x20]
sub ecx, edi
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp esi, eax
jb 0x4268d3
call fcn.0045520c
mov edi, dword [esp + 0x1c]
lea edx, [esi*8]
sub edx, esi
cmp dword [edi + edx*4 + 0x18], 0x10
lea eax, [edi + edx*4]
jb 0x4268eb
mov eax, dword [eax + 4]
jmp 0x4268ee
add eax, 4
push eax
lea ecx, [esp + 0x2c]
call fcn.00421160
mov ecx, dword [esp + 0x50]
push eax
add ecx, 0x74
mov byte [esp + 0x318], 0x12
call fcn.00423f70
mov eax, dword [esp + 0x28]
add eax, 0xfffffff0
mov byte [esp + 0x314], 0xf
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426935
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edi, dword [esp + 0x1c]
cmp edi, dword [esp + 0x20]
jbe 0x426944
call fcn.0045520c
mov ebp, dword [esp + 0x30]
cmp ebp, dword [esp + 0x34]
mov ebx, edi
mov dword [esp + 0x98], ebx
mov edi, ebp
jbe 0x426962
call fcn.0045520c
mov ebp, dword [esp + 0x30]
test esi, esi
mov dword [esp + 0xa4], edi
jbe 0x4269a3
lea ecx, [ecx]
cmp ebx, dword [esp + 0x20]
jb 0x42697b
call fcn.0045520c
add ebx, 0x1c
cmp edi, dword [esp + 0x34]
jb 0x426989
call fcn.0045520c
add edi, 4
sub esi, 1
jne 0x426970
mov ebp, dword [esp + 0x30]
mov dword [esp + 0xa4], edi
mov dword [esp + 0x98], ebx
mov edi, dword [esp + 0x98]
mov ebx, dword [esp + 0x20]
lea esi, [edi + 0x1c]
cmp esi, ebx
je 0x4269cf
sub edi, esi
push 0xffffffffffffffff
push 0
push esi
lea ecx, [edi + esi]
call fcn.004087c0
add esi, 0x1c
cmp esi, ebx
jne 0x4269b7
mov ebp, dword [esp + 0x30]
mov edi, dword [esp + 0x20]
lea esi, [edi - 0x1c]
cmp esi, edi
je 0x426a0c
mov ebp, 0x10
lea ebx, [ebp - 1]
cmp dword [esi + 0x18], ebp
jb 0x4269f3
mov ecx, dword [esi + 4]
push ecx
call fcn.00434567
add esp, 4
mov dword [esi + 0x18], ebx
mov dword [esi + 0x14], 0
mov byte [esi + 4], 0
add esi, 0x1c
cmp esi, edi
jne 0x4269e2
mov ebp, dword [esp + 0x30]
mov edx, dword [esp + 0xa4]
mov eax, dword [esp + 0x34]
sub dword [esp + 0x20], 0x1c
lea ecx, [edx + 4]
sub eax, ecx
sar eax, 2
test eax, eax
jle 0x426a3c
add eax, eax
add eax, eax
push eax
push ecx
push eax
push edx
call fcn.00454be3
mov ebp, dword [esp + 0x40]
add esp, 0x10
sub dword [esp + 0x34], 4
xor ebx, ebx
jmp 0x4266da
mov ecx, dword [esp + 0x50]
mov eax, dword [ecx + 0x78]
cmp eax, ebx
je 0x426a61
mov edx, dword [ecx + 0x7c]
sub edx, eax
sar edx, 2
jne 0x426b4b
push str.Failed_to_make_download_urls_from_version.ini
call fcn.0042bb70
push str.Failed_to_make_download_urls_from_version.ini
push 8
call fcn.0042b8f0
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x314], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426aa2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
cmp eax, ebx
je 0x426ab3
push eax
call fcn.00434567
add esp, 4
mov eax, dword [esp + 0x40]
cmp eax, ebx
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], ebx
mov dword [esp + 0x38], ebx
je 0x426ae9
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x40]
push edx
push ecx
push eax
call fcn.00408330
mov edx, dword [esp + 0x50]
push edx
call fcn.00434567
add esp, 0x14
mov eax, dword [esp + 0x1c]
cmp eax, ebx
mov dword [esp + 0x40], ebx
mov dword [esp + 0x44], ebx
mov dword [esp + 0x48], ebx
je 0x426b1f
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x1c]
push edx
push ecx
push eax
call fcn.00408330
mov edx, dword [esp + 0x2c]
push edx
call fcn.00434567
add esp, 0x14
lea ecx, [esp + 0xa8]
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x20], ebx
mov dword [esp + 0x24], ebx
mov byte [esp + 0x314], 0
call fcn.0041e6e0
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
jmp 0x425fa0
xor ebp, ebp
xor ebx, ebx
nop
mov edi, dword [esp + 0x50]
mov ecx, dword [edi + 0x78]
cmp ecx, ebp
je 0x426cc9
mov eax, dword [edi + 0x7c]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jae 0x426cc9
cmp ecx, ebp
je 0x426b7f
mov eax, dword [edi + 0x7c]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jb 0x426b84
call fcn.0045520c
mov eax, dword [edi + 0x78]
lea ebp, [ebx*4]
mov esi, dword [eax + ebp]
mov ecx, dword [esi - 0x10]
mov edx, dword [ecx]
add eax, ebp
mov eax, dword [edx + 0x10]
sub esi, 0x10
call eax
cmp dword [esi + 0xc], 0
lea edx, [esi + 0xc]
jl 0x426bba
cmp eax, dword [esi]
jne 0x426bba
mov edi, esi
mov ecx, 1
lock xadd dword [edx], ecx
jmp 0x426bf0
mov ecx, dword [esi + 4]
mov edx, dword [eax]
mov edx, dword [edx]
push 1
push ecx
mov ecx, eax
call edx
mov edi, eax
test edi, edi
je 0x426cc4
mov eax, dword [esi + 4]
mov dword [edi + 4], eax
mov eax, dword [esi + 4]
add eax, 1
push eax
add esi, 0x10
push esi
push eax
lea ecx, [edi + 0x10]
push ecx
call fcn.0045463f
add esp, 0x10
lea esi, [edi + 0x10]
mov dword [esp + 0x28], esi
mov ecx, dword [esi - 0xc]
lea eax, [ecx - 1]
test eax, eax
mov byte [esp + 0x314], 0x13
jl 0x425fce
cmp eax, ecx
jg 0x425fce
cmp byte [eax + esi], 0x2f
jne 0x426c96
mov eax, ecx
add eax, 0xffffffff
push eax
push 0
lea edx, [esp + 0x9c]
push edx
lea ecx, [esp + 0x34]
call fcn.00420270
mov edi, eax
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x78]
test ecx, ecx
mov byte [esp + 0x314], 0x14
je 0x426c57
mov edx, eax
mov eax, dword [edx + 0x7c]
sub eax, ecx
sar eax, 2
cmp ebx, eax
jb 0x426c5c
call fcn.0045520c
mov eax, dword [esp + 0x50]
mov ecx, dword [eax + 0x78]
add ecx, ebp
push edi
call fcn.0040a940
mov eax, dword [esp + 0x94]
add eax, 0xfffffff0
mov byte [esp + 0x314], 0x13
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426c96
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
add esi, 0xfffffff0
mov byte [esp + 0x314], 0xf
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426cba
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
add ebx, 1
xor ebp, ebp
jmp 0x426b50
call fcn.00402b30
mov eax, ecx
cmp eax, ebp
je 0x426cd9
mov ecx, dword [edi + 0x7c]
sub ecx, eax
sar ecx, 2
jne 0x426cde
call fcn.0045520c
mov esi, dword [edi + 0x78]
mov eax, dword [esi]
sub eax, 0x10
mov ecx, 1
sub ecx, dword [eax + 0xc]
mov eax, dword [eax + 8]
or eax, ecx
jge 0x426cfd
push ebp
mov ecx, esi
call fcn.00407e10
mov esi, dword [esi]
mov ebx, dword [esp + 0x58]
push esi
lea edx, [ebx + 0x10]
push 0x104
push edx
call fcn.00455410
add esp, 0xc
push 8
mov esi, 0xf
push str.MaxSpeed
lea ecx, [esp + 0x80]
mov dword [esp + 0x98], esi
mov dword [esp + 0x94], ebp
mov byte [esp + 0x84], 0
call fcn.004092c0
lea eax, [esp + 0x634]
mov byte [esp + 0x314], 0x15
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], ebp
mov byte [esp + 0x60], 0
lea edx, [eax + 1]
mov cl, byte [eax]
add eax, 1
test cl, cl
jne 0x426d62
sub eax, edx
push eax
lea eax, [esp + 0x638]
push eax
lea ecx, [esp + 0x64]
call fcn.004092c0
lea ecx, [esp + 0x78]
push ecx
lea edx, [esp + 0x60]
push edx
lea ecx, [esp + 0xb0]
mov byte [esp + 0x31c], 0x16
call fcn.0041e670
cmp dword [esp + 0x74], 0x10
jb 0x426db1
mov eax, dword [esp + 0x60]
push eax
call fcn.00434567
add esp, 4
cmp dword [esp + 0x90], 0x10
mov dword [esp + 0x74], esi
mov dword [esp + 0x70], ebp
mov byte [esp + 0x60], 0
mov byte [esp + 0x314], 0xf
jb 0x426ddd
mov ecx, dword [esp + 0x7c]
push ecx
call fcn.00434567
add esp, 4
mov edx, dword [ebx]
mov dword [edi + 0x60], edx
mov eax, dword [ebx + 4]
mov dword [edi + 0x64], eax
mov eax, dword [edi + 0x50]
mov ecx, dword [ebx + 8]
lea esi, [edi + 0x68]
push esi
push eax
mov dword [edi + 0x6c], ecx
call fcn.0042c0f0
add esp, 8
test eax, eax
jne 0x426f19
push str.Failed_to_get_local_version_file
call fcn.0042bb70
push str.Failed_to_get_local_version_file
push 8
call fcn.0042b8f0
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x314], 0xd
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x426e47
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
cmp eax, ebp
je 0x426e58
push eax
call fcn.00434567
add esp, 4
mov eax, dword [esp + 0x40]
cmp eax, ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
je 0x426e8e
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x40]
push edx
push ecx
push eax
call fcn.00408330
mov edx, dword [esp + 0x50]
push edx
call fcn.00434567
add esp, 0x14
mov eax, dword [esp + 0x1c]
cmp eax, ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
je 0x426ec4
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x1c]
push edx
push ecx
push eax
call fcn.00408330
mov edx, dword [esp + 0x2c]
push edx
call fcn.00434567
add esp, 0x14
lea ecx, [esp + 0xa8]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov byte [esp + 0x314], 0
call fcn.0041e6e0
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
mov dword [esp + 0x314], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426f0f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 4
jmp 0x4278c2
mov eax, dword [esi]
cmp eax, dword [ebx + 4]
mov dword [ebx + 0xc], eax
jae 0x42703a
push str.The_local_version_is_lower_than_minimal_version
call fcn.0042bb70
push str.The_local_version_is_lower_than_minimal_version
push 8
call fcn.0042b8f0
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x314], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x426f68
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
cmp eax, ebp
je 0x426f79
push eax
call fcn.00434567
add esp, 4
mov eax, dword [esp + 0x40]
cmp eax, ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
je 0x426faf
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x40]
push edx
push ecx
push eax
call fcn.00408330
mov edx, dword [esp + 0x50]
push edx
call fcn.00434567
add esp, 0x14
mov eax, dword [esp + 0x1c]
cmp eax, ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
je 0x426fe5
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x1c]
push edx
push ecx
push eax
call fcn.00408330
mov edx, dword [esp + 0x2c]
push edx
call fcn.00434567
add esp, 0x14
lea ecx, [esp + 0xa8]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov byte [esp + 0x314], 0
call fcn.0041e6e0
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
mov dword [esp + 0x314], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x427030
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 5
jmp 0x4278c2
cmp eax, dword [ebx]
jbe 0x427155
push str.The_local_version_is_higher_than_latest_version
call fcn.0042bb70
push str.The_local_version_is_higher_than_latest_version
push 8
call fcn.0042b8f0
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
add esp, 0xc
mov byte [esp + 0x314], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x427083
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
cmp eax, ebp
je 0x427094
push eax
call fcn.00434567
add esp, 4
mov eax, dword [esp + 0x40]
cmp eax, ebp
mov dword [esp + 0x30], ebp
mov dword [esp + 0x34], ebp
mov dword [esp + 0x38], ebp
je 0x4270ca
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x40]
push edx
push ecx
push eax
call fcn.00408330
mov edx, dword [esp + 0x50]
push edx
call fcn.00434567
add esp, 0x14
mov eax, dword [esp + 0x1c]
cmp eax, ebp
mov dword [esp + 0x40], ebp
mov dword [esp + 0x44], ebp
mov dword [esp + 0x48], ebp
je 0x427100
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x1c]
push edx
push ecx
push eax
call fcn.00408330
mov edx, dword [esp + 0x2c]
push edx
call fcn.00434567
add esp, 0x14
lea ecx, [esp + 0xa8]
mov dword [esp + 0x1c], ebp
mov dword [esp + 0x20], ebp
mov dword [esp + 0x24], ebp
mov byte [esp + 0x314], 0
call fcn.0041e6e0
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
mov dword [esp + 0x314], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42714b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 6
jmp 0x4278c2
mov ebp, dword [esp + 0x50]
mov eax, dword [esi]
mov ecx, dword [ebp + 0x60]
sub ecx, eax
mov dword [ebp + 0xbf8], ecx
lea ecx, [ebp + 0x88]
mov dword [ebp + 0xbb8], eax
mov dword [ebp + 0xbbc], eax
call fcn.0041eff0
xor edi, edi
mov bl, 0x17
push 0x3c
call fcn.00434537
add esp, 4
mov dword [esp + 0x14], eax
test eax, eax
mov byte [esp + 0x314], bl
je 0x4271a5
mov ecx, eax
call fcn.0042de70
mov esi, eax
jmp 0x4271a7
xor esi, esi
test esi, esi
mov byte [esp + 0x314], 0xf
mov dword [esp + 0x28], esi
je 0x427300
push 0
push 0
mov ecx, esi
call fcn.0042e570
test eax, eax
je 0x427415
lea edx, [esp + 0x28]
push edx
lea ecx, [ebp + 0xbc0]
call fcn.00423280
add edi, 1
cmp edi, 1
jl 0x427181
mov eax, dword [esp + 0x58]
mov ecx, dword [eax + 0xc]
cmp ecx, dword [eax]
jne 0x427433
push str.It_doesnt_need_patch
push 1
call fcn.0042b8f0
mov eax, dword [esp + 0x5c]
add eax, 0xfffffff0
add esp, 8
mov byte [esp + 0x314], 0xd
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x42722c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
xor esi, esi
cmp eax, esi
je 0x42723f
push eax
call fcn.00434567
add esp, 4
mov eax, dword [esp + 0x40]
cmp eax, esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x38], esi
je 0x427275
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x40]
push edx
push ecx
push eax
call fcn.00408330
mov edx, dword [esp + 0x50]
push edx
call fcn.00434567
add esp, 0x14
mov eax, dword [esp + 0x1c]
cmp eax, esi
mov dword [esp + 0x40], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x48], esi
je 0x4272ab
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x1c]
push edx
push ecx
push eax
call fcn.00408330
mov edx, dword [esp + 0x2c]
push edx
call fcn.00434567
add esp, 0x14
lea ecx, [esp + 0xa8]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
mov byte [esp + 0x314], 0
call fcn.0041e6e0
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
mov dword [esp + 0x314], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4272f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 7
jmp 0x4278c2
push str.Failed_to_create_task_worker
call fcn.0042bb70
push str.Failed_to_create_task_worker
push 8
call fcn.0042b8f0
mov eax, dword [esp + 0x60]
add eax, 0xfffffff0
or edx, 0xffffffff
lea ecx, [eax + 0xc]
mov byte [esp + 0x320], 0xd
add esp, 0xc
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x427341
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
xor esi, esi
cmp eax, esi
je 0x427354
push eax
call fcn.00434567
add esp, 4
mov eax, dword [esp + 0x40]
cmp eax, esi
mov dword [esp + 0x38], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x30], esi
je 0x42738a
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x40]
push edx
push ecx
push eax
call fcn.00408330
mov edx, dword [esp + 0x50]
push edx
call fcn.00434567
add esp, 0x14
mov eax, dword [esp + 0x1c]
cmp eax, esi
mov dword [esp + 0x48], esi
mov dword [esp + 0x44], esi
mov dword [esp + 0x40], esi
je 0x4273c0
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x1c]
push edx
push ecx
push eax
call fcn.00408330
mov edx, dword [esp + 0x2c]
push edx
call fcn.00434567
add esp, 0x14
mov dword [esp + 0x1c], esi
mov dword [esp + 0x20], esi
mov dword [esp + 0x24], esi
lea ecx, [esp + 0xa8]
mov byte [esp + 0x314], 0
call fcn.0041e6e0
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
mov dword [esp + 0x314], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x42740b
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, 0xb
jmp 0x4278c2
mov edx, dword [esi]
mov eax, dword [edx]
push 1
mov ecx, esi
call eax
push str.Failed_to_start_to_worker_thread
call fcn.0042bb70
push str.Failed_to_start_to_worker_thread
jmp 0x42730f
test byte [esp + 0x738], 4
je 0x427673
mov edx, dword [0x49ec04]
mov eax, dword [edx + 0xc]
mov ecx, 0x49ec04
call eax
add eax, 0x10
mov dword [esp + 0x50], eax
mov ecx, dword [ebp + 0x54]
push ecx
lea edx, [esp + 0x54]
push 0x47b0b0
push edx
mov byte [esp + 0x320], 0x18
call fcn.00420ca0
mov esi, dword [esp + 0x5c]
add esp, 0xc
lea eax, [esp + 0xc8]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
xor edi, edi
cmp eax, 0xffffffff
mov dword [esp + 0x14], eax
je 0x42764d
push edi
push edi
push edi
push edi
push 0x100
lea ecx, [esp + 0x21c]
push ecx
push 3
lea edx, [esp + 0xb8]
push edx
push esi
call fcn.00456442
add esp, 0x24
mov bl, 0x19
mov edi, edi
test byte [esp + 0xc8], 0x10
je 0x427627
push 0x104
lea eax, [esp + 0xf8]
push 0x47b0ac
push eax
call fcn.00456765
add esp, 0xc
test eax, eax
je 0x427627
push 0x104
lea ecx, [esp + 0xf8]
push 0x47b0a8
push ecx
call fcn.00456765
add esp, 0xc
test eax, eax
je 0x427627
lea edx, [esp + 0xf4]
push edx
lea ecx, [esp + 0x98]
call fcn.00421160
mov esi, dword [esp + 0x94]
mov edx, dword [esi - 0xc]
xor eax, eax
cmp edx, edi
mov byte [esp + 0x314], bl
jle 0x427574
lea ecx, [ecx]
cmp eax, edi
jl 0x425fce
cmp eax, edx
jg 0x425fce
mov cl, byte [eax + esi]
cmp cl, 0x30
jl 0x427603
cmp eax, edx
jg 0x425fce
cmp cl, 0x39
jg 0x427603
add eax, 1
cmp eax, edx
jl 0x427540
push esi
call fcn.00454c4f
mov ecx, dword [esp + 0x5c]
add esp, 4
cmp eax, dword [ecx + 0xc]
jge 0x4275fc
mov edx, dword [0x49ec04]
mov eax, dword [edx + 0xc]
mov ecx, 0x49ec04
call eax
add eax, 0x10
mov dword [esp + 0x28], eax
lea ecx, [esp + 0xf4]
push ecx
lea edx, [esp + 0x20c]
push edx
lea eax, [esp + 0xa4]
push eax
lea ecx, [esp + 0x34]
push str._s_s_s
push ecx
mov byte [esp + 0x328], 0x1a
call fcn.00420ca0
mov esi, dword [esp + 0x3c]
push esi
call fcn.0042cab0
lea eax, [esi - 0x10]
add esp, 0x18
mov byte [esp + 0x314], bl
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4275fc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x94]
lea eax, [esi - 0x10]
mov byte [esp + 0x314], 0x18
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x427627
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov esi, dword [esp + 0x14]
lea ecx, [esp + 0xc8]
push ecx
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
cmp eax, edi
jne 0x4274c0
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
mov esi, dword [esp + 0x50]
lea eax, [esi - 0x10]
mov byte [esp + 0x314], 0xf
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x427675
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x427675
xor edi, edi
mov ecx, dword [esp + 0x73c]
push ecx
call fcn.0042e650
add esp, 4
cmp eax, edi
mov dword [ebp + 0xc08], eax
jne 0x427772
mov edx, dword [esp + 0x73c]
push edx
push str.Failed_to_create_downloader_:_type___d_
call fcn.0042bb70
mov eax, dword [esp + 0x744]
push eax
push str.Failed_to_create_downloader_:_type___d_
push 8
call fcn.0042b8f0
mov eax, dword [esp + 0x68]
add eax, 0xfffffff0
add esp, 0x14
mov byte [esp + 0x314], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4276e4
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
cmp eax, edi
je 0x4276f5
push eax
call fcn.00434567
add esp, 4
mov eax, dword [esp + 0x40]
cmp eax, edi
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
je 0x42772b
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x48]
lea edx, [esp + 0x40]
push edx
push ecx
push eax
call fcn.00408330
mov edx, dword [esp + 0x50]
push edx
call fcn.00434567
add esp, 0x14
mov eax, dword [esp + 0x1c]
cmp eax, edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x44], edi
mov dword [esp + 0x48], edi
je 0x427761
mov ecx, dword [esp + 0x14]
push ecx
mov ecx, dword [esp + 0x24]
lea edx, [esp + 0x1c]
push edx
push ecx
push eax
call fcn.00408330
mov edx, dword [esp + 0x2c]
push edx
call fcn.00434567
add esp, 0x14
mov dword [esp + 0x1c], edi
mov dword [esp + 0x20], edi
mov dword [esp + 0x24], edi
jmp 0x4273cc
mov ecx, dword [esp + 0x58]
mov ecx, dword [ecx + 0xc]
mov esi, dword [eax]
lea ebx, [esp + 0xa8]
push ebx
lea edx, [ebp + 0x40]
push edx
mov edx, dword [esi + 4]
push ecx
mov ecx, eax
call edx
mov esi, eax
cmp esi, edi
jge 0x42782a
mov eax, dword [ebp + 0xc08]
mov eax, dword [eax + 0x94]
push eax
push esi
push str.Failed_to_Init_Downloader_:_Result___d__DNLastErrorCode___d_
call fcn.0042bb70
mov ecx, dword [ebp + 0xc08]
mov eax, dword [ecx + 0x94]
push eax
push esi
push str.Failed_to_Init_Downloader_:_Result___d__DNLastErrorCode___d_
push 8
call fcn.0042b8f0
mov eax, dword [esp + 0x70]
add eax, 0xfffffff0
add esp, 0x1c
mov byte [esp + 0x314], 0xd
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x4277f6
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
cmp eax, edi
je 0x427807
push eax
call fcn.00434567
add esp, 4
lea ecx, [esp + 0x3c]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
call fcn.00406c50
lea ecx, [esp + 0x18]
call fcn.00406c50
jmp 0x4273cc
mov eax, dword [esp + 0x54]
add eax, 0xfffffff0
mov byte [esp + 0x314], 0xd
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x427852
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov eax, dword [esp + 0x30]
cmp eax, edi
je 0x427863
push eax
call fcn.00434567
add esp, 4
lea ecx, [esp + 0x3c]
mov dword [esp + 0x30], edi
mov dword [esp + 0x34], edi
mov dword [esp + 0x38], edi
call fcn.00406c50
lea ecx, [esp + 0x18]
call fcn.00406c50
lea ecx, [esp + 0xa8]
mov byte [esp + 0x314], 0
call fcn.0041e6e0
mov eax, dword [esp + 0x4c]
add eax, 0xfffffff0
mov dword [esp + 0x314], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4278c0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
xor eax, eax
mov ecx, dword [esp + 0x30c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0x2f4]
xor ecx, esp
call fcn.00454567
add esp, 0x304
ret 0x42c