Function at 0x41c390
Capabilities:
Delete file

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x426c01
mov eax, dword fs:[0]
push eax
sub esp, 0x4c0
mov eax, dword [0x43a504]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, ecx
mov dword [ebp - 0x478], ebx
lea ecx, [ebp - 0x4c8]
call fcn.0041ba50
mov dword [ebp - 4], 0
call fcn.004023c0
mov ecx, eax
test ecx, ecx
jne 0x41c3ed
push 0x80004005
call fcn.00401f90
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x46c], esi
lea eax, [ebp - 0x490]
mov byte [ebp - 4], 1
push eax
mov ecx, ebx
call fcn.0041c170
push 0x15
push str.WeiyunSyncUpdate.conf
lea ecx, [ebp - 0x490]
mov byte [ebp - 4], 2
call fcn.004098e0
mov ebx, dword [ebp - 0x490]
push ecx
mov eax, esp
lea ecx, [ebp - 0x4c8]
mov dword [eax], ebx
call fcn.00412260
or edi, 0xffffffff
cmp al, 1
je 0x41c44a
mov edi, 0x80200000
jmp 0x41d43f
push ecx
mov eax, esp
lea ecx, [ebp - 0x4c8]
mov dword [eax], str.root
call fcn.0040fd00
cmp al, 1
je 0x41c46c
mov edi, 0x80200001
jmp 0x41d43f
lea ecx, [ebp - 0x4c8]
call fcn.004121c0
push ecx
mov eax, esp
lea ecx, [ebp - 0x4c8]
mov dword [eax], str.version
call fcn.0040fd00
cmp al, 1
jne 0x41c56e
lea eax, [ebp - 0x480]
push eax
lea ecx, [ebp - 0x4c8]
call fcn.0041bf00
mov eax, dword [eax]
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 3
mov dword [ebp - 0x470], eax
mov dword [ebp - 0x474], ecx
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x41c524
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x41c50f
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x41c509
push edx
call fcn.004021f0
add esp, 4
mov dword [ebp - 0x470], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x41c4fe
mov esi, dword [ebp - 0x474]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x470]
lea esi, [eax + 0x10]
mov dword [ebp - 0x46c], esi
jmp 0x41c524
mov eax, dword [ebp - 0x470]
push dword [eax - 0xc]
lea ecx, [ebp - 0x46c]
push eax
call fcn.00402770
mov esi, dword [ebp - 0x46c]
mov edx, dword [ebp - 0x480]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41c545
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0x104
jle 0x41c558
mov edi, 0x80200002
jmp 0x41d43f
push 0xa
push 0
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstoul]
mov ecx, dword [ebp - 0x478]
add esp, 0xc
mov dword [ecx], eax
push ecx
mov eax, esp
lea ecx, [ebp - 0x4c8]
mov dword [eax], str.vername
call fcn.0040fd00
cmp al, 1
je 0x41c590
mov edi, 0x8020000a
jmp 0x41d43f
lea eax, [ebp - 0x470]
push eax
lea ecx, [ebp - 0x4c8]
call fcn.0041bf00
mov eax, dword [eax]
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 4
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x480], ecx
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x41c621
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x41c60c
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x41c606
push edx
call fcn.004021f0
add esp, 4
mov dword [ebp - 0x474], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x41c5fb
mov esi, dword [ebp - 0x480]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x474]
lea esi, [eax + 0x10]
mov dword [ebp - 0x46c], esi
jmp 0x41c621
mov eax, dword [ebp - 0x474]
push dword [eax - 0xc]
lea ecx, [ebp - 0x46c]
push eax
call fcn.00402770
mov esi, dword [ebp - 0x46c]
mov edx, dword [ebp - 0x470]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41c642
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0x104
jle 0x41c655
mov edi, 0x80200002
jmp 0x41d43f
mov eax, dword [ebp - 0x478]
push esi
add eax, 0x628
push 0x104
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 8
lea ecx, [ebp - 0x4c8]
mov eax, esp
mov dword [eax], str.dlprotocol
call fcn.0040fd00
cmp al, 1
jne 0x41c767
lea eax, [ebp - 0x470]
push eax
lea ecx, [ebp - 0x4c8]
call fcn.0041bf00
mov eax, dword [eax]
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 5
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x480], ecx
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x41c71c
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x41c707
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x41c701
push edx
call fcn.004021f0
add esp, 4
mov dword [ebp - 0x474], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x41c6f6
mov esi, dword [ebp - 0x480]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x474]
lea esi, [eax + 0x10]
mov dword [ebp - 0x46c], esi
jmp 0x41c71c
mov eax, dword [ebp - 0x474]
push dword [eax - 0xc]
lea ecx, [ebp - 0x46c]
push eax
call fcn.00402770
mov esi, dword [ebp - 0x46c]
mov edx, dword [ebp - 0x470]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41c73d
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0x104
jle 0x41c750
mov edi, 0x80200002
jmp 0x41d43f
push 0xa
push 0
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstoul]
mov ecx, dword [ebp - 0x478]
add esp, 0xc
mov dword [ecx + 4], eax
push ecx
mov eax, esp
lea ecx, [ebp - 0x4c8]
mov dword [eax], str.updatetype
call fcn.0040fd00
cmp al, 1
jne 0x41c85f
lea eax, [ebp - 0x470]
push eax
lea ecx, [ebp - 0x4c8]
call fcn.0041bf00
mov eax, dword [eax]
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 6
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x480], ecx
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x41c814
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x41c7ff
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x41c7f9
push edx
call fcn.004021f0
add esp, 4
mov dword [ebp - 0x474], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x41c7ee
mov esi, dword [ebp - 0x480]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x474]
lea esi, [eax + 0x10]
mov dword [ebp - 0x46c], esi
jmp 0x41c814
mov eax, dword [ebp - 0x474]
push dword [eax - 0xc]
lea ecx, [ebp - 0x46c]
push eax
call fcn.00402770
mov esi, dword [ebp - 0x46c]
mov edx, dword [ebp - 0x470]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41c835
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0x104
jle 0x41c848
mov edi, 0x80200002
jmp 0x41d43f
push 0xa
push 0
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstoul]
mov ecx, dword [ebp - 0x478]
add esp, 0xc
mov dword [ecx + 8], eax
push ecx
mov eax, esp
lea ecx, [ebp - 0x4c8]
mov dword [eax], str.forcekill
call fcn.0040fd00
cmp al, 1
je 0x41c881
mov edi, 0x80200007
jmp 0x41d43f
lea eax, [ebp - 0x470]
push eax
lea ecx, [ebp - 0x4c8]
call fcn.0041bf00
mov eax, dword [eax]
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 7
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x480], ecx
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x41c912
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x41c8fd
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x41c8f7
push edx
call fcn.004021f0
add esp, 4
mov dword [ebp - 0x474], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x41c8ec
mov esi, dword [ebp - 0x480]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x474]
lea esi, [eax + 0x10]
mov dword [ebp - 0x46c], esi
jmp 0x41c912
mov eax, dword [ebp - 0x474]
push dword [eax - 0xc]
lea ecx, [ebp - 0x46c]
push eax
call fcn.00402770
mov esi, dword [ebp - 0x46c]
mov edx, dword [ebp - 0x470]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41c933
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0x104
jle 0x41c946
mov edi, 0x80200002
jmp 0x41d43f
mov ecx, 0x4318ec
mov eax, esi
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41c976
test dx, dx
je 0x41c972
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41c976
add eax, 4
add ecx, 4
test dx, dx
jne 0x41c950
xor ecx, ecx
jmp 0x41c97b
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, dword [ebp - 0x478]
setne al
mov dword [ecx + 0xc], eax
test eax, eax
jne 0x41c99c
push 0x42b58c
lea eax, [ecx + 0x10]
jmp 0x41ca8d
push ecx
mov eax, esp
lea ecx, [ebp - 0x4c8]
mov dword [eax], 0x4318f0
call fcn.0040fd00
cmp al, 1
je 0x41c9be
mov edi, 0x80200008
jmp 0x41d43f
lea eax, [ebp - 0x470]
push eax
lea ecx, [ebp - 0x4c8]
call fcn.0041bf00
mov eax, dword [eax]
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 8
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x480], ecx
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x41ca4f
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x41ca3a
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x41ca34
push edx
call fcn.004021f0
add esp, 4
mov dword [ebp - 0x474], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x41ca29
mov esi, dword [ebp - 0x480]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x474]
lea esi, [eax + 0x10]
mov dword [ebp - 0x46c], esi
jmp 0x41ca4f
mov eax, dword [ebp - 0x474]
push dword [eax - 0xc]
lea ecx, [ebp - 0x46c]
push eax
call fcn.00402770
mov esi, dword [ebp - 0x46c]
mov edx, dword [ebp - 0x470]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41ca70
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0x104
jle 0x41ca83
mov edi, 0x80200002
jmp 0x41d43f
mov eax, dword [ebp - 0x478]
push esi
add eax, 0x10
push 0x104
push eax
mov eax, dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
call eax
add esp, 0xc
push ecx
mov eax, esp
lea ecx, [ebp - 0x4c8]
mov dword [eax], 0x431904
call fcn.0040fd00
cmp al, 1
je 0x41cabf
mov edi, 0x80200003
jmp 0x41d43f
lea eax, [ebp - 0x470]
push eax
lea ecx, [ebp - 0x4c8]
call fcn.0041bf00
mov eax, dword [eax]
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 9
mov dword [ebp - 0x474], eax
mov dword [ebp - 0x480], ecx
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x41cb50
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x41cb3b
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x41cb35
push edx
call fcn.004021f0
add esp, 4
mov dword [ebp - 0x474], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x41cb2a
mov esi, dword [ebp - 0x480]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x474]
lea esi, [eax + 0x10]
mov dword [ebp - 0x46c], esi
jmp 0x41cb50
mov eax, dword [ebp - 0x474]
push dword [eax - 0xc]
lea ecx, [ebp - 0x46c]
push eax
call fcn.00402770
mov esi, dword [ebp - 0x46c]
mov edx, dword [ebp - 0x470]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41cb71
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0x104
jle 0x41cb84
mov edi, 0x80200002
jmp 0x41d43f
mov eax, dword [ebp - 0x478]
push esi
add eax, 0x218
push 0x104
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
push 0x208
lea eax, [ebp - 0x218]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
push esi
lea eax, [ebp - 0x218]
push 0x104
push eax
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
lea eax, [ebp - 0x218]
push 0x2f
push eax
call dword [sym.imp.VCRUNTIME140.dll_wcsrchr]
add esp, 0x2c
test eax, eax
jne 0x41cbe2
mov edi, 0x80200004
jmp 0x41d43f
mov ecx, dword [ebp - 0x478]
add eax, 2
push eax
add ecx, 0x420
push 0x104
push ecx
mov dword [ebp - 0x474], ecx
call dword [sym.imp.api_ms_win_crt_string_l1_1_0.dll_wcscpy_s]
add esp, 8
lea ecx, [ebp - 0x4c8]
mov eax, esp
mov dword [eax], str.filesize
call fcn.0040fd00
cmp al, 1
jne 0x41cd01
lea eax, [ebp - 0x488]
push eax
lea ecx, [ebp - 0x4c8]
call fcn.0041bf00
mov eax, dword [eax]
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 0xa
mov dword [ebp - 0x470], eax
mov dword [ebp - 0x480], ecx
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x41ccb3
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x41cc9e
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x41cc98
push edx
call fcn.004021f0
add esp, 4
mov dword [ebp - 0x470], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x41cc8d
mov esi, dword [ebp - 0x480]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x470]
lea esi, [eax + 0x10]
mov dword [ebp - 0x46c], esi
jmp 0x41ccb3
mov eax, dword [ebp - 0x470]
push dword [eax - 0xc]
lea ecx, [ebp - 0x46c]
push eax
call fcn.00402770
mov esi, dword [ebp - 0x46c]
mov edx, dword [ebp - 0x488]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41ccd4
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0x104
jle 0x41cce7
mov edi, 0x80200002
jmp 0x41d43f
push 0xa
push 0
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll_wcstoul]
mov ecx, dword [ebp - 0x478]
add esp, 0xc
mov dword [ecx + 0x840], eax
push ecx
mov eax, esp
lea ecx, [ebp - 0x4c8]
mov dword [eax], str.filemd5
call fcn.0040fd00
cmp al, 1
jne 0x41cdfc
lea eax, [ebp - 0x470]
push eax
lea ecx, [ebp - 0x4c8]
call fcn.0041bf00
mov eax, dword [eax]
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 0xb
mov dword [ebp - 0x480], eax
mov dword [ebp - 0x488], ecx
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x41cdae
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x41cd99
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x41cd93
push edx
call fcn.004021f0
add esp, 4
mov dword [ebp - 0x480], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x41cd88
mov esi, dword [ebp - 0x488]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x480]
lea esi, [eax + 0x10]
mov dword [ebp - 0x46c], esi
jmp 0x41cdae
mov eax, dword [ebp - 0x480]
push dword [eax - 0xc]
lea ecx, [ebp - 0x46c]
push eax
call fcn.00402770
mov esi, dword [ebp - 0x46c]
mov edx, dword [ebp - 0x470]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41cdcf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0x20
jle 0x41cddf
mov edi, 0x80200002
jmp 0x41d43f
mov eax, dword [ebp - 0x478]
add eax, 0x830
push 0x10
push eax
lea eax, [ebp - 0x46c]
push eax
call fcn.0041de20
add esp, 0xc
mov eax, dword [ebp - 0x474]
mov edx, dword [ebp - 0x478]
test eax, eax
jne 0x41ce10
xor ecx, ecx
jmp 0x41ce39
mov ecx, eax
lea eax, [ecx + 2]
mov dword [ebp - 0x488], eax
nop dword [eax + eax]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41ce20
sub ecx, dword [ebp - 0x488]
mov eax, dword [ebp - 0x474]
sar ecx, 1
push ecx
push eax
lea ecx, [edx + 0x850]
call fcn.00402770
mov eax, dword [ebp - 0x478]
mov ecx, dword [eax + 0x850]
cmp dword [ecx - 0xc], 0
jle 0x41ce89
push 0x5c
push ecx
call dword [sym.imp.VCRUNTIME140.dll_wcschr]
add esp, 8
test eax, eax
je 0x41ce83
mov ecx, dword [ebp - 0x478]
sub eax, dword [ecx + 0x850]
sar eax, 1
cmp eax, 0xffffffff
jne 0x41d0cb
mov eax, ecx
jmp 0x41ce89
mov eax, dword [ebp - 0x478]
lea ecx, [ebp - 0x47c]
push ecx
mov ecx, eax
call fcn.0041c170
push str.CacheFile
push eax
lea eax, [ebp - 0x484]
mov byte [ebp - 4], 0xc
push eax
call fcn.0040d6b0
push 0x431564
push eax
lea eax, [ebp - 0x48c]
mov byte [ebp - 4], 0xd
push eax
call fcn.0040d6b0
add esp, 0x18
mov ecx, dword [ebp - 0x478]
mov eax, dword [eax]
add ecx, 0x850
mov dword [ebp - 0x4cc], eax
add eax, 0xfffffff0
mov byte [ebp - 4], 0xe
mov dword [ebp - 0x470], eax
mov edx, dword [ecx]
sub edx, 0x10
mov dword [ebp - 0x480], edx
cmp eax, edx
je 0x41cf6a
cmp dword [edx + 0xc], 0
lea eax, [edx + 0xc]
mov dword [ebp - 0x488], eax
jl 0x41cf5b
mov eax, dword [ebp - 0x470]
mov eax, dword [eax]
cmp eax, dword [edx]
jne 0x41cf5b
push dword [ebp - 0x470]
call fcn.004021f0
mov edx, dword [ebp - 0x488]
add esp, 4
mov dword [ebp - 0x470], eax
mov ecx, edi
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jg 0x41cf4a
mov eax, dword [ebp - 0x480]
push eax
mov ecx, dword [eax]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x470]
mov ecx, dword [ebp - 0x478]
add eax, 0x10
mov dword [ecx + 0x850], eax
jmp 0x41cf6a
mov eax, dword [ebp - 0x4cc]
push dword [eax - 0xc]
push eax
call fcn.00402770
mov edx, dword [ebp - 0x48c]
mov eax, edi
mov byte [ebp - 4], 0xd
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41cf8b
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x484]
mov eax, edi
mov byte [ebp - 4], 0xc
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41cfac
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x47c]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41cfcd
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x478]
push dword [ecx + 0x850]
lea ecx, [ebp - 0x470]
call fcn.00402d80
push 0x250
lea eax, [ebp - 0x468]
push 0
push eax
call sub.VCRUNTIME140.dll_memset
add esp, 0xc
lea eax, [ebp - 0x468]
push eax
push dword [ebp - 0x470]
call dword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp eax, 0xffffffff
jne 0x41d068
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov edx, dword [ebp - 0x470]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41d035
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov ecx, dword [ebp - 0x478]
push dword [ecx + 0x850]
lea ecx, [ebp - 0x470]
call fcn.00402d80
mov ecx, dword [ebp - 0x478]
lea eax, [ebp - 0x470]
push eax
mov byte [ebp - 4], 0xf
call fcn.0041be80
mov byte [ebp - 4], 2
jmp 0x41d06f
push eax
call dword [sym.imp.KERNEL32.dll_FindClose]
mov edx, dword [ebp - 0x470]
mov eax, edi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41d08c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x474]
test edx, edx
jne 0x41d09a
xor ecx, ecx
jmp 0x41d0b8
mov ecx, edx
lea eax, [ecx + 2]
mov dword [ebp - 0x47c], eax
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x41d0a5
sub ecx, dword [ebp - 0x47c]
sar ecx, 1
push ecx
mov ecx, dword [ebp - 0x478]
push edx
add ecx, 0x850
call fcn.004098e0
push ecx
mov eax, esp
lea ecx, [ebp - 0x4c8]
mov dword [eax], str.silence
call fcn.0040fd00
cmp al, 1
jne 0x41d1f1
lea eax, [ebp - 0x48c]
push eax
lea ecx, [ebp - 0x4c8]
call fcn.0041bf00
mov eax, dword [eax]
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 0x10
mov dword [ebp - 0x484], eax
mov dword [ebp - 0x47c], ecx
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x41d178
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x41d163
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x41d15d
push edx
call fcn.004021f0
add esp, 4
mov dword [ebp - 0x484], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x41d152
mov esi, dword [ebp - 0x47c]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x484]
lea esi, [eax + 0x10]
mov dword [ebp - 0x46c], esi
jmp 0x41d178
mov eax, dword [ebp - 0x484]
push dword [eax - 0xc]
lea ecx, [ebp - 0x46c]
push eax
call fcn.00402770
mov esi, dword [ebp - 0x46c]
mov edx, dword [ebp - 0x48c]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41d199
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0x104
jle 0x41d1ac
mov edi, 0x80200002
jmp 0x41d43f
mov ecx, 0x4318ec
mov eax, esi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41d1d9
test dx, dx
je 0x41d1d5
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41d1d9
add eax, 4
add ecx, 4
test dx, dx
jne 0x41d1b3
xor ecx, ecx
jmp 0x41d1de
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, dword [ebp - 0x478]
setne al
mov dword [ecx + 0x844], eax
push ecx
mov eax, esp
lea ecx, [ebp - 0x4c8]
mov dword [eax], str.showprogress
call fcn.0040fd00
cmp al, 1
jne 0x41d31e
lea eax, [ebp - 0x48c]
push eax
lea ecx, [ebp - 0x4c8]
call fcn.0041bf00
mov eax, dword [eax]
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 0x11
mov dword [ebp - 0x484], eax
mov dword [ebp - 0x47c], ecx
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x41d29e
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x41d289
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x41d283
push edx
call fcn.004021f0
add esp, 4
mov dword [ebp - 0x484], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x41d278
mov esi, dword [ebp - 0x47c]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x484]
lea esi, [eax + 0x10]
mov dword [ebp - 0x46c], esi
jmp 0x41d29e
mov eax, dword [ebp - 0x484]
push dword [eax - 0xc]
lea ecx, [ebp - 0x46c]
push eax
call fcn.00402770
mov esi, dword [ebp - 0x46c]
mov edx, dword [ebp - 0x48c]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41d2bf
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0x104
jle 0x41d2d2
mov edi, 0x80200002
jmp 0x41d43f
mov ecx, 0x4318ec
mov eax, esi
nop dword [eax]
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x41d306
test dx, dx
je 0x41d302
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x41d306
add eax, 4
add ecx, 4
test dx, dx
jne 0x41d2e0
xor ecx, ecx
jmp 0x41d30b
sbb ecx, ecx
or ecx, 1
xor eax, eax
test ecx, ecx
mov ecx, dword [ebp - 0x478]
setne al
mov dword [ecx + 0x848], eax
push ecx
mov eax, esp
lea ecx, [ebp - 0x4c8]
mov dword [eax], str.description
call fcn.0040fd00
cmp al, 1
je 0x41d340
mov edi, 0x80200009
jmp 0x41d43f
lea eax, [ebp - 0x48c]
push eax
lea ecx, [ebp - 0x4c8]
call fcn.0041bf00
mov eax, dword [eax]
lea ecx, [esi - 0x10]
mov byte [ebp - 4], 0x12
mov dword [ebp - 0x484], eax
mov dword [ebp - 0x47c], ecx
lea edx, [eax - 0x10]
cmp edx, ecx
je 0x41d3d1
cmp dword [ecx + 0xc], 0
lea esi, [ecx + 0xc]
jl 0x41d3bc
mov eax, dword [edx]
cmp eax, dword [ecx]
jne 0x41d3b6
push edx
call fcn.004021f0
add esp, 4
mov dword [ebp - 0x484], eax
mov ecx, edi
lock xadd dword [esi], ecx
dec ecx
test ecx, ecx
jg 0x41d3ab
mov esi, dword [ebp - 0x47c]
push esi
mov ecx, dword [esi]
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x484]
lea esi, [eax + 0x10]
mov dword [ebp - 0x46c], esi
jmp 0x41d3d1
mov eax, dword [ebp - 0x484]
push dword [eax - 0xc]
lea ecx, [ebp - 0x46c]
push eax
call fcn.00402770
mov esi, dword [ebp - 0x46c]
mov edx, dword [ebp - 0x48c]
mov eax, edi
mov byte [ebp - 4], 2
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41d3f2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
cmp dword [esi - 0xc], 0
jle 0x41d43d
push esi
call dword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov edi, eax
test edi, edi
jne 0x41d40f
push 0x8007000e
call fcn.00401f90
mov eax, dword [ebp - 0x478]
mov ecx, dword [eax + 0x84c]
mov eax, dword [sym.imp.OLEAUT32.dll_SysStringLen]
cmp ecx, edi
je 0x41d43a
push ecx
call eax
mov eax, dword [ebp - 0x478]
mov dword [eax + 0x84c], edi
xor edi, edi
mov eax, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push edi
call eax
xor edi, edi
push ebx
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
lea edx, [ebx - 0x10]
mov byte [ebp - 4], 1
or ebx, 0xffffffff
mov eax, ebx
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x41d464
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0
add esi, 0xfffffff0
lock xadd dword [esi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x41d47d
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
lea ecx, [ebp - 0x4c8]
call fcn.0040d020
mov eax, edi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.00421a0e
mov esp, ebp
pop ebp
ret