Function at 0x140022890
Capabilities:
Check for time delay via gettickcount
Check if file exists
Create directory
Write file on windows

Disassembly:
push rbp
push r12
push r13
push r14
push r15
sub rsp, 0x580
lea rbp, [rsp + 0x40]
mov qword [rbp + 0x578], rbx
mov qword [rbp + 0x580], rsi
mov qword [rbp + 0x588], rdi
mov rax, qword [0x140317e98]
xor rax, rbp
mov qword [rbp + 0x530], rax
mov r14, rcx
xor ebx, ebx
mov r12d, ebx
mov dword [rbp], ebx
lea r8, str.download_start
mov edx, 0x25bd
call fcn.14001c410
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbp + 0x18], eax
mov rcx, qword [r14]
test rcx, rcx
je 0x140022936
lea r8, [0x140317368]
cmp qword [0x140317380], 8
cmovae r8, qword [0x140317368]
xor r9d, r9d
mov edx, 0x603
call fcn.14003a280
mov rcx, qword [r14]
test rcx, rcx
je 0x140022936
xor r9d, r9d
mov edx, 0x601
lea r8d, [rbx + 3]
call fcn.14003a280
lea rdi, [r14 + 0x20]
mov rdx, rdi
lea rcx, [rbp + 0x20]
call fcn.140027be0
nop
mov rax, qword [rbp + 0x20]
mov r13d, 1
cmp dword [rax - 0x10], 4
jl 0x140022999
lea r8d, [r13 + 3]
lea rdx, [rbp + 0xe0]
lea rcx, [rbp + 0x20]
call fcn.14000d3e0
mov r12d, r13d
mov dword [rbp], r13d
mov rdx, qword [rax]
mov rcx, rbx
lea r8, str..zip
nop
movzx eax, word [rdx + rcx*2]
inc rcx
cmp ax, word [r8 + rcx*2 - 2]
jne 0x140022999
cmp rcx, 5
jne 0x140022980
xor bl, bl
jmp 0x14002299b
mov bl, 1
mov r15, 0xffffffffffffffff
test r12b, 1
je 0x1400229d5
and r12d, 0xfffffffe
mov dword [rbp], r12d
mov rdx, qword [rbp + 0xe0]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400229d1
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov r12d, dword [rbp]
test bl, bl
je 0x1400229f9
lea rdx, str.dingtalk_update_xx11.zip
mov rax, r15
inc rax
cmp word [rdx + rax*2], 0
jne 0x1400229e3
mov r8d, eax
lea rcx, [rbp + 0x20]
call fcn.14000ac20
xor ebx, ebx
mov qword [rbp + 0xe8], rbx
mov qword [rbp + 0xf8], rbx
mov qword [rbp + 0x100], 0xf
mov byte [rbp + 0xe8], bl
mov esi, ebx
mov qword [rbp + 0x128], rbx
mov qword [rbp + 0x138], rbx
mov qword [rbp + 0x140], 7
mov word [rbp + 0x128], bx
lea rdx, [rbp + 0xe8]
mov rcx, r14
call fcn.140022590
test eax, eax
jne 0x1400230d3
lea rax, [rbp + 0xe8]
cmp qword [rbp + 0x100], 0x10
cmovae rax, qword [rbp + 0xe8]
mov qword [rbp + 0xf8], rbx
mov byte [rax], bl
call fcn.140090c60
mov rdi, rax
mov r8d, r13d
lea edx, [rbx + 0x29]
mov rcx, rax
call fcn.140091040
xor r8d, r8d
lea edx, [rbx + 0x40]
mov rcx, rdi
call fcn.140091040
mov r8d, r13d
lea edx, [rbx + 0x34]
mov rcx, rdi
call fcn.140091040
xor r8d, r8d
lea edx, [rbx + 0x2b]
mov rcx, rdi
call fcn.140091040
lea r8, str.DingtalkUpdateAgent_1.0
mov edx, 0x2722
mov rcx, rdi
call fcn.140091040
lea r8, [0x14001e810]
mov edx, 0x4e2b
mov rcx, rdi
call fcn.140091040
lea r8, [0x14001ace0]
mov edx, 0x4e58
mov rcx, rdi
call fcn.140091040
mov rdx, qword [r14 + 0x20]
mov qword [rbp + 0x188], rbx
mov qword [rbp + 0x198], rbx
mov qword [rbp + 0x1a0], 7
mov word [rbp + 0x188], bx
mov r8, r15
nop word [rax + rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x140022b20
lea rcx, [rbp + 0x188]
call fcn.14000a220
nop
mov rax, qword [r14]
mov qword [rbp + 0x90], rax
mov dword [rbp + 0x98], ebx
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbp + 0x9c], eax
mov r8, qword [r14 + 0x20]
test r8, r8
je 0x140022bea
mov rax, r15
inc rax
cmp word [r8 + rax*2], 0
jne 0x140022b64
lea edx, [rax + 1]
cmp edx, 0x3fffffff
jg 0x140022bea
cdqe
lea rax, [rax*2 + 2]
lea rcx, [rax + 0xf]
cmp rcx, rax
ja 0x140022b97
movabs rcx, 0xffffffffffffff0
and rcx, 0xfffffffffffffff0
mov rax, rcx
call fcn.1400d76d0
sub rsp, rcx
lea rbx, [rsp + 0x40]
test rbx, rbx
je 0x140022be6
mov byte [rbx], 0
lea eax, [rdx + rdx]
xor ecx, ecx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rcx
mov dword [rsp + 0x28], eax
mov qword [rsp + 0x20], rbx
mov r9d, r15d
xor edx, edx
lea ecx, [rdx + 3]
call qword [sym.imp.KERNEL32.dll_WideCharToMultiByte]
test eax, eax
mov eax, 0
cmove rbx, rax
jmp 0x140022bea
xor eax, eax
mov ebx, eax
mov r8, rbx
mov edx, 0x2712
mov rcx, rdi
call fcn.140091040
lea r8, [rbp + 0xe8]
mov edx, 0x2711
mov rcx, rdi
call fcn.140091040
lea r8, [rbp + 0x90]
mov edx, 0x2749
mov rcx, rdi
call fcn.140091040
xor eax, eax
mov qword [rbp + 0x168], rax
mov qword [rbp + 0x178], rax
mov qword [rbp + 0x180], 7
mov word [rbp + 0x168], ax
lea r8d, [rax + 6]
lea rdx, str.status
lea rcx, [rbp + 0x168]
call fcn.14000a220
nop
xor r8d, r8d
lea rdx, [rbp + 0x168]
lea rcx, [0x1403171b0]
call fcn.140009570
mov ebx, eax
mov rdx, qword [rbp + 0x180]
cmp rdx, 8
jb 0x140022cba
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x168]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022cb5
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140023f3d
call fcn.1400d7558
cmp ebx, 1
je 0x140022cd1
mov rcx, rdi
call fcn.140090ca0
mov esi, eax
test eax, eax
je 0x14002307e
call fcn.140004b20
mov rcx, rax
test rax, rax
je 0x140023f43
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x48], rax
mov r9, qword [rbp + 0xf8]
mov r8d, esi
lea rdx, str.curl_easy_perform_failed__but_code_is:__d__buffer_size___d
lea rcx, [rbp + 0x48]
call fcn.14000c550
lea r8, [0x140241920]
lea rdx, str.downloadProc
mov rcx, qword [rbp + 0x48]
call fcn.14002c680
lea r8, [0x140241920]
lea rdx, str.downloadProc
lea rcx, str.curl_easy_perform_failed__try_to_use_proxy_and_perform_again_
call fcn.14002c680
mov dword [rbp + 0x28], r15d
xor ebx, ebx
mov qword [rbp + 0x108], rbx
mov qword [rbp + 0x118], rbx
mov qword [rbp + 0x120], 0xf
mov byte [rbp + 0x108], bl
mov qword [rbp + 0x148], rbx
mov qword [rbp + 0x158], rbx
mov qword [rbp + 0x160], 0xf
mov byte [rbp + 0x148], bl
lea r9, [rbp + 0x148]
lea r8, [rbp + 0x108]
lea rdx, [rbp + 0x28]
mov rcx, r14
call fcn.140018090
test eax, eax
je 0x140022f69
mov ebx, dword [rbp + 0x28]
cmp ebx, 7
ja 0x140022f4d
cmp qword [rbp + 0x118], 0
je 0x140022f4d
lea rdx, [rbp + 0x108]
cmp qword [rbp + 0x120], 0x10
cmovae rdx, qword [rbp + 0x108]
lea rax, [rbp + 0x218]
mov qword [rbp + 0x210], rax
mov r8d, 3
lea rcx, [rbp + 0x210]
call fcn.14000aa00
nop
mov rdx, qword [rbp + 0x210]
mov r8, r15
nop dword [rax]
inc r8
cmp word [rdx + r8*2], 0
jne 0x140022e00
lea rcx, [rbp + 0x128]
call fcn.14000a220
nop
lea rax, [rbp + 0x218]
mov rcx, qword [rbp + 0x210]
cmp rcx, rax
je 0x140022e30
call fcn.1400e9e10
mov r8d, ebx
mov edx, 0x65
mov rcx, rdi
call fcn.140091040
lea r8, [rbp + 0x108]
cmp qword [rbp + 0x120], 0x10
cmovae r8, qword [rbp + 0x108]
mov edx, 0x2714
mov rcx, rdi
call fcn.140091040
cmp qword [rbp + 0x158], 0
je 0x140022e92
lea r8, [rbp + 0x148]
cmp qword [rbp + 0x160], 0x10
cmovae r8, qword [rbp + 0x148]
mov edx, 0x2716
mov rcx, rdi
call fcn.140091040
mov edx, 0x6f
mov r8d, 0xffffffef
mov rcx, rdi
call fcn.140091040
cmp qword [r14], 0
je 0x140022f67
call fcn.140004b20
mov rcx, rax
test rax, rax
je 0x140023f4e
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x68], rax
lea r8, [rbp + 0x128]
cmp qword [rbp + 0x140], 8
cmovae r8, qword [rbp + 0x128]
lea rdx, [0x140317388]
cmp qword [0x1403173a0], 8
cmovae rdx, qword [0x140317388]
lea rcx, [rbp + 0x68]
call fcn.14000c550
xor r9d, r9d
mov edx, 0x601
lea r8d, [r9 + 3]
mov rcx, qword [r14]
call fcn.14003a280
xor r9d, r9d
mov rbx, qword [rbp + 0x68]
mov r8, rbx
mov edx, 0x603
mov rcx, qword [r14]
call fcn.14003a280
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140022f67
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
jmp 0x140022f67
lea r8, [0x140241920]
lea rdx, str.downloadProc
lea rcx, str.Get_proxy_success_but_no_proxy__
call fcn.14002c680
xor ebx, ebx
lea rax, [rbp + 0xe8]
cmp qword [rbp + 0x100], 0x10
cmovae rax, qword [rbp + 0xe8]
mov qword [rbp + 0xf8], rbx
mov byte [rax], 0
mov dword [rbp + 0x98], ebx
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [rbp + 0x9c], eax
mov rcx, rdi
call fcn.140090ca0
mov esi, eax
mov rdx, qword [rbp + 0x160]
cmp rdx, 0x10
jb 0x140022fe7
inc rdx
mov rcx, qword [rbp + 0x148]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140022fe2
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140023f59
call fcn.1400d7558
mov qword [rbp + 0x158], rbx
mov qword [rbp + 0x160], 0xf
mov byte [rbp + 0x148], 0
mov rdx, qword [rbp + 0x120]
cmp rdx, 0x10
jb 0x140023041
inc rdx
mov rcx, qword [rbp + 0x108]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002303c
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140023f5f
call fcn.1400d7558
mov qword [rbp + 0x118], rbx
mov qword [rbp + 0x120], 0xf
mov byte [rbp + 0x108], 0
mov rdx, qword [rbp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140023078
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov r12d, dword [rbp]
jmp 0x140023080
xor ebx, ebx
mov rcx, rdi
call fcn.140090c50
nop
mov rdx, qword [rbp + 0x1a0]
cmp rdx, 8
jb 0x1400230cf
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x188]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400230ca
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140023f65
call fcn.1400d7558
lea rdi, [r14 + 0x20]
call qword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
sub ecx, dword [rbp + 0x18]
mov eax, 0x10624dd3
imul ecx
mov r8d, edx
sar r8d, 6
mov eax, r8d
shr eax, 0x1f
add r8d, eax
mov eax, ebx
mov rcx, qword [rbp + 0xf8]
shr rcx, 0xa
test r8d, r8d
jle 0x14002310d
mov eax, ecx
cdq
idiv r8d
mov dword [rsp + 0x20], ecx
mov r9d, eax
mov edx, esi
mov rcx, r14
call fcn.14001b140
test esi, esi
je 0x14002329d
call fcn.140004b20
mov rcx, rax
test rax, rax
je 0x140023f6b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x50], rax
mov r9, qword [rbp + 0xf8]
mov r8d, esi
lea rdx, str.curl_easy_perform_failed__error_code_is:__d__buffer_size___d
lea rcx, [rbp + 0x50]
call fcn.14000c550
lea r8, [0x140241920]
mov rdx, qword [rdi]
mov rcx, qword [rbp + 0x50]
call fcn.14002c680
mov rcx, qword [r14]
test rcx, rcx
je 0x14002326a
cmp qword [rbp + 0x138], 0
je 0x140023218
call fcn.140004b20
mov rcx, rax
test rax, rax
je 0x140023f76
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x70], rax
lea r8, [rbp + 0x128]
cmp qword [rbp + 0x140], 8
cmovae r8, qword [rbp + 0x128]
lea rdx, [0x140317468]
cmp qword [0x140317480], 8
cmovae rdx, qword [0x140317468]
lea rcx, [rbp + 0x70]
call fcn.14000c550
mov r9, r13
mov rbx, qword [rbp + 0x70]
mov r8, rbx
mov edx, 0x603
mov rcx, qword [r14]
call fcn.14003a280
nop
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140023214
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor ebx, ebx
jmp 0x14002323c
lea r8, [0x140317448]
cmp qword [0x140317460], 8
cmovae r8, qword [0x140317448]
mov r9, r13
mov edx, 0x603
call fcn.14003a280
lea r9, str.retryBtn
mov r8, r13
mov edx, 0x604
mov rcx, qword [r14]
call fcn.14003a280
lea r9, str.urlBtn
mov r8, r13
mov edx, 0x604
mov rcx, qword [r14]
call fcn.14003a280
mov edx, 3
mov rcx, r14
call fcn.14001caf0
nop
mov rdx, qword [rbp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140023296
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov esi, ebx
jmp 0x140023e0d
xor r8d, r8d
lea rdx, [rbp + 0xe8]
lea rcx, [rbp + 0x1c8]
call fcn.14000a940
nop
mov rdx, rax
lea rcx, [rbp + 0x1a8]
call fcn.14002be20
mov rbx, rax
cmp qword [rax + 0x18], 8
jb 0x1400232d0
mov rbx, qword [rax]
call fcn.140004b20
mov rcx, rax
test rax, rax
je 0x140023f81
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rbp + 0x40], rax
test rbx, rbx
je 0x14002331c
cmp rbx, 0x10000
jae 0x14002330b
movzx edx, bx
lea rcx, [rbp + 0x40]
call fcn.1400054f0
jmp 0x14002332e
mov rax, r15
nop
inc rax
cmp word [rbx + rax*2], 0
jne 0x140023310
jmp 0x14002331e
xor eax, eax
mov r8d, eax
mov rdx, rbx
lea rcx, [rbp + 0x40]
call fcn.14000ac20
nop
mov rdx, qword [rbp + 0x1c0]
cmp rdx, 8
jb 0x140023374
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x1a8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x14002336f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140023f8c
call fcn.1400d7558
xor ebx, ebx
mov qword [rbp + 0x1b8], rbx
mov qword [rbp + 0x1c0], 7
mov word [rbp + 0x1a8], bx
mov rdx, qword [rbp + 0x1e0]
cmp rdx, 0x10
jb 0x1400233d0
inc rdx
mov rcx, qword [rbp + 0x1c8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x1400233cb
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140023f92
call fcn.1400d7558
mov qword [rbp + 0x1d8], rbx
mov qword [rbp + 0x1e0], 0xf
mov byte [rbp + 0x1c8], 0
mov r8, qword [r14 + 0x40]
test r8, r8
je 0x140023f98
mov rdi, qword [rbp + 0x40]
mov rax, rdi
sub r8, rdi
movzx edx, word [rax]
movzx ecx, word [rax + r8]
sub edx, ecx
jne 0x140023414
add rax, 2
test ecx, ecx
jne 0x140023400
test edx, edx
je 0x140023732
mov rcx, qword [rdi - 0x18]
test rcx, rcx
je 0x140023433
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
jne 0x140023444
call fcn.140004b20
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
test rcx, rcx
je 0x140023fa3
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp + 0x78], rbx
or r12d, 2
mov dword [rbp], r12d
mov eax, dword [rdi - 0x10]
mov dword [rbp + 0x30], eax
lea r9, str.updateFile:
mov rsi, r15
inc rsi
cmp word [r9 + rsi*2], 0
jne 0x140023473
lea edx, [rax + rsi]
mov dword [rbp + 0x10], edx
test edx, edx
js 0x140023fc4
mov ecx, r13d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, edx
or eax, ecx
jge 0x1400234af
lea rcx, [rbp + 0x78]
call fcn.140005800
mov rbx, qword [rbp + 0x78]
lea r9, str.updateFile:
movsxd rax, esi
lea rsi, [rax + rax]
test rsi, rsi
je 0x1400234e0
test rbx, rbx
jne 0x1400234d2
call fcn.1400e8b0c
mov dword [rax], 0x16
call fcn.1400de95c
jmp 0x1400234e0
mov r8, rsi
mov rdx, r9
mov rcx, rbx
call fcn.1400d9910
lea rcx, [rsi + rbx]
movsxd r8, dword [rbp + 0x30]
add r8, r8
je 0x140023518
test rcx, rcx
je 0x140023508
test rdi, rdi
je 0x140023501
mov rdx, rdi
call fcn.1400d9910
jmp 0x140023518
xor edx, edx
call fcn.1400d9fc0
call fcn.1400e8b0c
mov dword [rax], 0x16
call fcn.1400de95c
movsxd rax, dword [rbp + 0x10]
cmp eax, dword [rbx - 0xc]
jg 0x140023fc4
mov dword [rbx - 0x10], eax
xor ecx, ecx
mov word [rbx + rax*2], cx
mov rcx, qword [rbx - 0x18]
test rcx, rcx
je 0x140023545
mov rax, qword [rcx]
call qword [rax + 0x20]
mov rcx, rax
test rax, rax
jne 0x140023556
call fcn.140004b20
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
test rcx, rcx
je 0x140023fae
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rdi, [rax + 0x18]
mov qword [rbp + 0x58], rdi
or r12d, 4
mov dword [rbp], r12d
lea rax, str._initFile:
mov rsi, r15
nop
inc rsi
cmp word [rax + rsi*2], 0
jne 0x140023580
mov eax, dword [rbx - 0x10]
mov dword [rbp + 0x10], eax
lea r12d, [rsi + rax]
test r12d, r12d
js 0x140023fb9
mov ecx, 1
sub ecx, dword [rdi - 8]
mov eax, dword [rdi - 0xc]
sub eax, r12d
or eax, ecx
jge 0x1400235bf
mov edx, r12d
lea rcx, [rbp + 0x58]
call fcn.140005800
mov rdi, qword [rbp + 0x58]
movsxd rax, dword [rbp + 0x10]
add rax, rax
mov qword [rbp + 0x10], rax
je 0x1400235f5
test rdi, rdi
jne 0x1400235e3
call fcn.1400e8b0c
mov dword [rax], 0x16
call fcn.1400de95c
jmp 0x1400235f1
mov r8, rax
mov rdx, rbx
mov rcx, rdi
call fcn.1400d9910
mov rax, qword [rbp + 0x10]
lea rcx, [rax + rdi]
movsxd r8, esi
add r8, r8
je 0x140023624
test rcx, rcx
jne 0x140023618
call fcn.1400e8b0c
mov dword [rax], 0x16
call fcn.1400de95c
jmp 0x140023624
lea rdx, str._initFile:
call fcn.1400d9910
cmp r12d, dword [rdi - 0xc]
jg 0x140023fb9
mov dword [rdi - 0x10], r12d
movsxd rax, r12d
xor ecx, ecx
mov word [rdi + rax*2], cx
lea r8, [r14 + 0x40]
lea rdx, [rbp + 0x58]
lea rcx, [rbp + 0xa0]
call fcn.14000bcd0
nop
mov r8, qword [rax]
mov rdx, qword [r14 + 0x20]
lea rcx, str.MD5_wrong
call fcn.14002c680
nop
mov rdx, qword [rbp + 0xa0]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140023686
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov eax, r15d
lock xadd dword [rdi - 8], eax
sub eax, 1
jg 0x1400236a2
mov rcx, qword [rdi - 0x18]
mov rax, qword [rcx]
lea rdx, [rdi - 0x18]
call qword [rax + 8]
nop
mov eax, r15d
lock xadd dword [rbx - 8], eax
sub eax, 1
jg 0x1400236bd
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
lea rdx, [rbx - 0x18]
call qword [rax + 8]
mov rcx, qword [r14]
test rcx, rcx
je 0x14002371c
lea r8, [0x140317448]
cmp qword [0x140317460], 8
cmovae r8, qword [0x140317448]
mov ebx, 1
mov r9d, ebx
mov edx, 0x603
call fcn.14003a280
lea r9, str.retryBtn
mov r8d, ebx
mov edx, 0x604
mov rcx, qword [r14]
call fcn.14003a280
lea r9, str.urlBtn
mov r8d, ebx
mov edx, 0x604
mov rcx, qword [r14]
call fcn.14003a280
mov edx, 4
mov rcx, r14
call fcn.14001caf0
xor ebx, ebx
mov esi, ebx
jmp 0x140023dee
lea r8, [0x140241920]
mov rdx, qword [r14 + 0x20]
lea rcx, str.MD5_right
call fcn.14002c680
mov rcx, qword [r14]
test rcx, rcx
je 0x140023762
xor r9d, r9d
mov edx, 0x601
lea r8d, [r9 + 0x5a]
call fcn.14003a280
mov rax, qword [rbp + 0x20]
mov r8d, dword [rax - 0x10]
add r8d, 0xfffffffc
lea rdx, [rbp + 0xb0]
lea rcx, [rbp + 0x20]
call fcn.14000cfb0
mov rsi, rax
lea rcx, [rbp + 0xa8]
call fcn.1400275b0
mov rdi, rax
mov rcx, qword [rax]
mov rcx, qword [rcx - 0x18]
test rcx, rcx
je 0x1400237aa
mov rdx, qword [rcx]
call qword [rdx + 0x20]
mov rcx, rax
test rax, rax
jne 0x1400237bb
call fcn.140004b20
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov rcx, rax
test rcx, rcx
je 0x140023fcf
mov rax, qword [rcx]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rbp + 0x60], rbx
or r12d, 8
mov dword [rbp], r12d
mov rax, qword [rsi]
mov qword [rbp + 0x30], rax
mov eax, dword [rax - 0x10]
mov dword [rbp + 0x10], eax
mov r12, qword [rdi]
movsxd rdi, dword [r12 - 0x10]
lea esi, [rax + rdi]
test esi, esi
js 0x140023f32
mov ecx, r13d
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, esi
or eax, ecx
jge 0x140023818
mov edx, esi
lea rcx, [rbp + 0x60]
call fcn.140005800
mov rbx, qword [rbp + 0x60]
add rdi, rdi
je 0x14002384e
test rbx, rbx
je 0x14002383e
mov r8, rdi
mov rcx, rbx
test r12, r12
je 0x140023837
mov rdx, r12
call fcn.1400d9910
jmp 0x14002384e
xor edx, edx
call fcn.1400d9fc0
call fcn.1400e8b0c
mov dword [rax], 0x16
call fcn.1400de95c
lea rcx, [rdi + rbx]
movsxd r8, dword [rbp + 0x10]
add r8, r8
je 0x140023885
test rcx, rcx
je 0x140023875
mov rdx, qword [rbp + 0x30]
test rdx, rdx
je 0x140023870
call fcn.1400d9910
jmp 0x140023885
call fcn.1400d9fc0
call fcn.1400e8b0c
mov dword [rax], 0x16
call fcn.1400de95c
cmp esi, dword [rbx - 0xc]
jg 0x140023f32
mov dword [rbx - 0x10], esi
movsxd rax, esi
xor ecx, ecx
mov word [rbx + rax*2], cx
lea rdx, [rbp + 0x60]
lea rcx, [r14 + 0x58]
call fcn.140014a70
nop
mov eax, r15d
lock xadd dword [rbx - 8], eax
sub eax, 1
jg 0x1400238c4
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
lea rdx, [rbx - 0x18]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0xa8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x1400238e6
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0xb0]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140023907
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
lea rcx, [rbp + 0xb8]
call fcn.1400275b0
nop
lea r8, [rbp + 0x20]
mov rdx, rax
lea rcx, [rbp + 8]
call fcn.14000bcd0
nop
mov rdx, qword [rbp + 0xb8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140023946
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
xor ebx, ebx
mov qword [rbp + 0x38], rbx
lea r8, [0x1402460c4]
mov rdx, qword [rbp + 8]
lea rcx, [rbp + 0x38]
call fcn.1400eb870
mov r9, qword [rbp + 0x38]
test r9, r9
jne 0x140023979
mov rdx, qword [rbp + 8]
lea rcx, str.open_file_wrong
jmp 0x140023a0d
lea rcx, [rbp + 0xe8]
cmp qword [rbp + 0x100], 0x10
cmovae rcx, qword [rbp + 0xe8]
mov r8, qword [rbp + 0xf8]
mov rdx, r13
call fcn.1400ecc58
mov rcx, qword [rbp + 0x38]
cmp rax, qword [rbp + 0xf8]
je 0x1400239be
call fcn.1400eb9e0
mov rdx, qword [rbp + 8]
lea rcx, str.write_file_wrong
jmp 0x140023a0d
call fcn.1400eb9e0
mov rcx, qword [r14]
test rcx, rcx
je 0x1400239dc
xor r9d, r9d
mov edx, 0x601
lea r8d, [r9 + 0x5c]
call fcn.14003a280
mov rcx, qword [r14 + 0x58]
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
mov rcx, qword [r14 + 0x58]
test eax, eax
jne 0x140023a87
xor edx, edx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
jne 0x140023a8c
mov rdx, qword [r14 + 0x58]
lea rcx, str.createDirectory_error
lea r8, [0x140241920]
call fcn.14002c680
mov rcx, qword [r14]
test rcx, rcx
je 0x140023a73
lea r8, [0x140317448]
cmp qword [0x140317460], 8
mov r9, r13
cmovae r8, qword [0x140317448]
mov edx, 0x603
call fcn.14003a280
lea r9, str.retryBtn
mov r8, r13
mov edx, 0x604
mov rcx, qword [r14]
call fcn.14003a280
lea r9, str.urlBtn
mov r8, r13
mov edx, 0x604
mov rcx, qword [r14]
call fcn.14003a280
mov edx, 5
mov rcx, r14
call fcn.14001caf0
mov esi, ebx
jmp 0x140023dcf
call fcn.140017ac0
mov rcx, qword [r14]
test rcx, rcx
je 0x140023acc
xor r9d, r9d
mov edx, 0x601
lea r8d, [r9 + 0x5e]
call fcn.14003a280
lea r8, [0x1403173a8]
cmp qword [0x1403173c0], 8
cmovae r8, qword [0x1403173a8]
xor r9d, r9d
mov edx, 0x603
mov rcx, qword [r14]
call fcn.14003a280
mov rcx, qword [rbp + 8]
test rcx, rcx
jne 0x140023cc8
mov rdi, rbx
mov qword [rbp + 0xc0], rbx
mov rcx, qword [r14 + 0x58]
test rcx, rcx
jne 0x140023ce6
mov qword [rbp + 0xc8], rbx
lea rax, [rbp + 0xd0]
mov qword [rbp + 0x10], rax
lea rdx, [r14 + 0x58]
lea rcx, [rbp + 0xd0]
call fcn.140002fa0
mov rsi, rax
mov rcx, qword [rbp + 8]
add rcx, 0xffffffffffffffe8
call fcn.14000c360
add rax, 0x18
mov qword [rbp + 0x80], rax
mov rdx, rsi
lea rcx, [rbp + 0x80]
call fcn.14002c430
movzx r13d, al
test al, al
jne 0x140023c36
mov r8, qword [r14 + 0x58]
mov rdx, qword [rbp + 8]
lea rcx, str.unzip_file_steps1_failed
call fcn.14002c680
mov rdx, rbx
mov rcx, rdi
call fcn.14002c0e0
movzx esi, al
test al, al
je 0x140023bd9
xor eax, eax
mov dword [rbp + 0x18], eax
lea rdx, [rbp + 0x18]
mov rcx, qword [r14 + 0x58]
call fcn.140020c00
mov r13d, esi
mov esi, dword [rbp + 0x18]
test esi, esi
mov eax, 0
cmove r13d, eax
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x320]
call fcn.1400d9fc0
mov r9d, esi
lea r8, str.Util::Unzip2Folder_had__d_files
mov edx, 0x103
lea rcx, [rbp + 0x320]
call fcn.1400131d0
mov r8, qword [r14 + 0x58]
mov rdx, qword [rbp + 8]
lea rcx, [rbp + 0x320]
call fcn.14002c680
test r13b, r13b
jne 0x140023c36
mov r8, qword [r14 + 0x58]
mov rdx, qword [rbp + 8]
lea rcx, str.unzip_file_steps2_failed
call fcn.14002c680
lea rax, [rbp + 0xd8]
mov qword [rbp + 0x10], rax
lea rdx, [r14 + 0x58]
lea rcx, [rbp + 0xd8]
call fcn.140002fa0
mov rsi, rax
mov rcx, qword [rbp + 8]
add rcx, 0xffffffffffffffe8
call fcn.14000c360
add rax, 0x18
mov qword [rbp + 0x88], rax
mov rdx, rsi
lea rcx, [rbp + 0x88]
call fcn.14002c430
movzx r13d, al
mov r8, qword [r14 + 0x58]
mov rdx, qword [rbp + 8]
test r13b, r13b
jne 0x140023d04
lea rcx, str.unzip_file_error
call fcn.14002c680
mov rcx, qword [r14]
test rcx, rcx
je 0x140023cb2
lea r8, [0x140317448]
cmp qword [0x140317460], 8
cmovae r8, qword [0x140317448]
mov esi, 1
mov r9d, esi
mov edx, 0x603
call fcn.14003a280
lea r9, str.retryBtn
mov r8d, esi
mov edx, 0x604
mov rcx, qword [r14]
call fcn.14003a280
lea r9, str.urlBtn
mov r8d, esi
mov edx, 0x604
mov rcx, qword [r14]
call fcn.14003a280
mov edx, 6
mov rcx, r14
call fcn.14001caf0
xor eax, eax
mov esi, eax
jmp 0x140023dba
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rdi, rax
mov qword [rbp + 0xc0], rax
test rax, rax
je 0x140023f1c
jmp 0x140023ae3
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov rbx, rax
mov qword [rbp + 0xc8], rax
test rax, rax
je 0x140023f27
jmp 0x140023af7
lea rcx, str.unzip_file_succeed
call fcn.14002c680
mov rdx, qword [r14 + 0x58]
xor eax, eax
mov qword [rbp + 0x1e8], rax
mov qword [rbp + 0x1f8], rax
mov qword [rbp + 0x200], 7
mov r8, r15
inc r8
cmp word [rdx + r8*2], ax
jne 0x140023d32
lea rcx, [rbp + 0x1e8]
call fcn.14000a220
mov rdx, qword [rbp + 0x200]
cmp rdx, 8
jb 0x140023d8e
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x1e8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140023d89
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140023fda
call fcn.1400d7558
mov rcx, qword [rbp + 8]
call fcn.1400eb934
mov rcx, qword [r14]
test rcx, rcx
je 0x140023db0
xor r9d, r9d
mov edx, 0x601
lea r8d, [r9 + 0x64]
call fcn.14003a280
mov byte [r14 + 8], 1
mov esi, 1
mov rcx, rbx
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
nop
mov rcx, rdi
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
xor ebx, ebx
mov rdx, qword [rbp + 8]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140023dee
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140023e0d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
nop
mov rdx, qword [rbp + 0x140]
cmp rdx, 8
jb 0x140023e53
lea rdx, [rdx*2 + 2]
mov rcx, qword [rbp + 0x128]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140023e4e
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140023fe0
call fcn.1400d7558
mov qword [rbp + 0x138], rbx
mov qword [rbp + 0x140], 7
mov word [rbp + 0x128], bx
mov rdx, qword [rbp + 0x100]
cmp rdx, 0x10
jb 0x140023ea9
inc rdx
mov rcx, qword [rbp + 0xe8]
mov rax, rcx
cmp rdx, 0x1000
jb 0x140023ea4
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x140023f16
call fcn.1400d7558
mov qword [rbp + 0xf8], rbx
mov qword [rbp + 0x100], 0xf
mov byte [rbp + 0xe8], 0
mov rdx, qword [rbp + 0x20]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x140023edf
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov eax, esi
mov rcx, qword [rbp + 0x530]
xor rcx, rbp
call fcn.1400d7670
mov rbx, qword [rbp + 0x578]
mov rsi, qword [rbp + 0x580]
mov rdi, qword [rbp + 0x588]
lea rsp, [rbp + 0x540]
pop r15
pop r14
pop r13
pop r12
pop rbp
ret
call fcn.1400de97c
nop
mov ecx, 0x8007000e
call fcn.1400049a0
nop
mov ecx, 0x8007000e
call fcn.1400049a0
nop
mov ecx, 0x80070057
call fcn.1400049a0
nop
call fcn.1400de97c
nop
mov ecx, 0x80004005
call fcn.1400049a0
nop
mov ecx, 0x80004005
call fcn.1400049a0
nop
call fcn.1400de97c
nop
call fcn.1400de97c
nop
call fcn.1400de97c
nop
mov ecx, 0x80004005
call fcn.1400049a0
nop
mov ecx, 0x80004005
call fcn.1400049a0
nop
mov ecx, 0x80004005
call fcn.1400049a0
nop
call fcn.1400de97c
nop
call fcn.1400de97c
nop
mov ecx, 0x80004005
call fcn.1400049a0
nop
mov ecx, 0x80004005
call fcn.1400049a0
nop
mov ecx, 0x80004005
call fcn.1400049a0
nop
mov ecx, 0x80070057
call fcn.1400049a0
nop
mov ecx, 0x80070057
call fcn.1400049a0
nop
mov ecx, 0x80004005
call fcn.1400049a0
nop
call fcn.1400de97c
nop
call fcn.1400de97c
int3