Function at 0x432f20
Capabilities:
Check if file exists

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x49171e
mov eax, dword fs:[0]
push eax
sub esp, 0x13c
mov eax, dword [0x4c9070]
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 dword [ebp - 0x118], ecx
mov eax, dword [ebp + 8]
mov dword [ebp - 0x11c], eax
call fcn.00404a20
mov ecx, eax
test ecx, ecx
jne 0x432f72
push 0x80004005
call fcn.00404ad0
mov eax, dword [ecx]
call dword [eax + 0xc]
lea edi, [eax + 0x10]
mov dword [ebp - 0x128], edi
mov dword [ebp - 4], 0
call fcn.00404a20
mov ecx, eax
test ecx, ecx
jne 0x432f9c
push 0x80004005
call fcn.00404ad0
mov eax, dword [ecx]
call dword [eax + 0xc]
mov dword [ebp - 0x144], eax
lea ecx, [eax + 0x10]
mov dword [ebp - 0x148], ecx
mov byte [ebp - 4], 1
call fcn.00404a20
mov ecx, eax
test ecx, ecx
jne 0x432fc9
push 0x80004005
call fcn.00404ad0
mov eax, dword [ecx]
call dword [eax + 0xc]
lea esi, [eax + 0x10]
mov dword [ebp - 0x124], esi
mov byte [ebp - 4], 2
call fcn.00404a20
mov ecx, eax
test ecx, ecx
jne 0x432ff0
push 0x80004005
call fcn.00404ad0
mov eax, dword [ecx]
call dword [eax + 0xc]
lea ebx, [eax + 0x10]
mov dword [ebp - 0x13c], ebx
mov ecx, dword [ebp - 0x118]
mov byte [ebp - 4], 3
mov dword [ebp - 0x130], 0
mov dword [ebp - 0x12c], 0
cmp dword [ecx + 0x73c], 0
je 0x43369a
cmp dword [ecx + 0x750], 0
jne 0x43369a
mov eax, dword [ecx + 0x770]
cmp dword [eax - 0xc], 0
je 0x43369a
push dword [ecx + 0x744]
call dword [sym.imp.jansson.dll_json_array_size]
mov ecx, dword [ebp - 0x118]
push dword [ebp - 0x11c]
push dword [ecx + 0x744]
call dword [sym.imp.jansson.dll_json_array_get]
add esp, 0xc
test eax, eax
je 0x43369a
push eax
call dword [sym.imp.jansson.dll_json_integer_value]
mov dword [ebp - 0x138], eax
add esp, 4
mov eax, dword [ebp - 0x118]
mov dword [ebp - 0x140], edx
push edx
mov ecx, dword [eax + 0x73c]
push dword [ebp - 0x138]
mov eax, dword [ecx]
call dword [eax + 0x24]
mov dword [ebp - 0x120], eax
test eax, eax
jne 0x4330b8
mov dword [ebp - 0x12c], eax
jmp 0x4336a4
mov esi, dword [ebp - 0x118]
push dword [esi + 0x744]
call dword [sym.imp.jansson.dll_json_array_size]
push eax
push dword [ebp - 0x11c]
push str.cur:_d_all:_d
push dword [esi + 0x748]
call dword [sym.imp.DuiLib.dll_public:_void___cdecl_DuiLib::CControlUI::StringFormat_wchar_t_const__]
mov ecx, dword [esi + 0x74c]
add esp, 0x14
push dword [ebp - 0x11c]
call dword [sym.imp.DuiLib.dll_public:_void___thiscall_DuiLib::CProgressUI::SetValue_int_]
push 0x4a731c
push dword [ebp - 0x120]
call dword [sym.imp.jansson.dll_json_object_get]
push eax
call dword [sym.imp.jansson.dll_json_string_value]
mov edx, eax
add esp, 0xc
test edx, edx
jne 0x43311c
xor ecx, ecx
jmp 0x43312a
mov ecx, edx
lea esi, [ecx + 1]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433121
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x124]
call fcn.00403450
mov esi, dword [ebp - 0x124]
cmp dword [esi - 0xc], 0
je 0x433678
mov edi, dword [ebp - 0x120]
push 0x4a4a10
push edi
call dword [sym.imp.jansson.dll_json_object_get]
push eax
call dword [sym.imp.jansson.dll_json_integer_value]
add esp, 0xc
cmp eax, 0x2e
jne 0x43316c
test edx, edx
je 0x43317d
cmp eax, 0x29
jne 0x433209
test edx, edx
jne 0x433209
push str.sha1
push edi
call dword [sym.imp.jansson.dll_json_object_get]
push eax
call dword [sym.imp.jansson.dll_json_string_value]
add esp, 0xc
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x114], ecx
lea ecx, [ebp - 0x114]
push 0xfde9
push eax
call fcn.004038b0
mov byte [ebp - 4], 4
mov edx, dword [ebp - 0x114]
test edx, edx
jne 0x4331c2
xor ecx, ecx
jmp 0x4331d6
mov ecx, edx
lea esi, [ecx + 2]
mov ax, word [ecx]
add ecx, 2
test ax, ax
jne 0x4331c7
sub ecx, esi
sar ecx, 1
push ecx
push edx
lea ecx, [ebp - 0x128]
call fcn.004046a0
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x110]
mov eax, dword [ebp - 0x114]
cmp eax, ecx
je 0x4332ca
push eax
call fcn.00471958
add esp, 4
jmp 0x4332ca
push 0xfde9
lea eax, [ebp - 0x110]
push esi
lea ecx, [ebp - 0x114]
mov dword [ebp - 0x114], eax
call fcn.004038b0
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x128]
push dword [ebp - 0x114]
call fcn.00404750
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x110]
mov eax, dword [ebp - 0x114]
cmp eax, ecx
je 0x433258
push eax
call fcn.00471958
add esp, 4
mov edi, dword [ebp - 0x128]
push 0x5c
push edi
call fcn.0046e615
mov ecx, eax
add esp, 8
test ecx, ecx
je 0x43369a
sub ecx, edi
sar ecx, 1
test ecx, ecx
jle 0x43369a
mov eax, dword [edi - 0xc]
sub eax, ecx
lea ecx, [ebp - 0x128]
dec eax
push eax
lea eax, [ebp - 0x134]
push eax
call fcn.0041d0b0
push eax
lea ecx, [ebp - 0x128]
mov byte [ebp - 4], 6
call fcn.0040a720
mov byte [ebp - 4], 3
or eax, 0xffffffff
mov edx, dword [ebp - 0x134]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4332ca
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x118]
lea ecx, [ebp - 0x128]
push dword [eax + 0x770]
push 0
call fcn.00435580
mov edi, dword [ebp - 0x128]
lea eax, [ebp - 0x90]
push 0xfde9
push edi
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x94], eax
call fcn.00404030
mov byte [ebp - 4], 7
mov edx, dword [ebp - 0x94]
test edx, edx
jne 0x433318
xor ecx, ecx
jmp 0x433329
mov ecx, edx
lea esi, [ecx + 1]
nop dword [eax]
mov al, byte [ecx]
inc ecx
test al, al
jne 0x433320
sub ecx, esi
push ecx
push edx
lea ecx, [ebp - 0x124]
call fcn.00403450
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x90]
mov eax, dword [ebp - 0x94]
cmp eax, ecx
je 0x433353
push eax
call fcn.00471958
add esp, 4
push edi
call fcn.00453f70
neg eax
sbb eax, eax
add eax, 1
mov dword [ebp - 0x11c], eax
je 0x433632
push edi
call dword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x433595
mov eax, dword [ebp - 0x118]
cmp dword [eax + 0x774], 0
lea ecx, [eax + 0x774]
mov esi, dword [ebp - 0x124]
mov dword [ebp - 0x134], ecx
je 0x4333ad
mov eax, dword [eax + 0x778]
mov dword [ebp - 0x130], eax
jmp 0x433477
push esi
call dword [sym.imp.jansson.dll_json_string]
push eax
push 0x4a7790
push dword [ebp - 0x120]
call dword [sym.imp.jansson.dll_json_object_set_new]
mov eax, dword [ebp - 0x118]
mov eax, dword [eax - 0x3b4]
cdq
push edx
push eax
call dword [sym.imp.jansson.dll_json_integer]
push eax
push 0x4a7254
push dword [ebp - 0x120]
call dword [sym.imp.jansson.dll_json_object_set_new]
call dword [sym.imp.jansson.dll_json_true]
push eax
push str.fetch
push dword [ebp - 0x120]
call dword [sym.imp.jansson.dll_json_object_set_new]
mov eax, dword [ebp - 0x118]
add esp, 0x30
push dword [ebp - 0x120]
push 5
push 0x8310
push dword [eax + 0x764]
call dword [sym.imp.USER32.dll_SendMessageW]
push dword [ebp - 0x134]
lea eax, [ebp - 0x130]
push str.same
push eax
push 0x4a7258
push str.s:i_s_b
push dword [ebp - 0x120]
call dword [sym.imp.jansson.dll_json_unpack]
add esp, 0x18
test eax, eax
js 0x43362a
mov eax, dword [ebp - 0x134]
cmp dword [eax], 0
je 0x433477
mov ecx, dword [ebp - 0x118]
mov eax, dword [ebp - 0x130]
mov dword [ecx + 0x778], eax
cmp dword [ebp - 0x130], 1
jne 0x433493
mov eax, dword [ebp - 0x11c]
xor ecx, ecx
mov dword [ebp - 0x12c], ecx
jmp 0x43363a
cmp dword [ebp - 0x130], 0
jne 0x43359b
push 0x4a7774
push dword [ebp - 0x120]
call dword [sym.imp.jansson.dll_json_object_get]
push eax
call dword [sym.imp.jansson.dll_json_string_value]
add esp, 0xc
test eax, eax
jne 0x4334d5
mov eax, dword [ebp - 0x11c]
mov ecx, 1
mov dword [ebp - 0x12c], ecx
jmp 0x43363a
lea ecx, [ebp - 0x110]
push 0xfde9
mov dword [ebp - 0x114], ecx
lea ecx, [ebp - 0x114]
push eax
call fcn.004038b0
mov byte [ebp - 4], 8
lea ecx, [ebp - 0x13c]
push dword [ebp - 0x114]
call fcn.00404750
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x110]
mov eax, dword [ebp - 0x114]
cmp eax, ecx
je 0x433524
push eax
call fcn.00471958
add esp, 4
mov ebx, dword [ebp - 0x13c]
cmp dword [ebx - 0xc], 0
jne 0x433546
mov eax, dword [ebp - 0x11c]
mov ecx, 1
mov dword [ebp - 0x12c], ecx
jmp 0x43363a
push 0xfde9
lea eax, [ebp - 0x90]
push ebx
lea ecx, [ebp - 0x94]
mov dword [ebp - 0x94], eax
call fcn.00404030
mov byte [ebp - 4], 9
lea ecx, [ebp - 0x124]
push dword [ebp - 0x94]
call fcn.00403000
mov byte [ebp - 4], 3
lea ecx, [ebp - 0x90]
mov eax, dword [ebp - 0x94]
cmp eax, ecx
je 0x433595
push eax
call fcn.00471958
add esp, 4
mov esi, dword [ebp - 0x124]
mov eax, dword [ebp - 0x118]
mov ecx, dword [eax + 0x76c]
test ecx, ecx
je 0x4335c6
cmp dword [esi - 0xc], 0
je 0x4335c6
mov eax, dword [ecx]
push esi
call dword [eax + 0x18]
push 0
push esi
push 1
mov ecx, 0x4d1720
call fcn.00459eb0
push esi
mov ecx, 0x4d1720
call fcn.0045aa70
mov eax, dword [ebp - 0x118]
push 0
push esi
push dword [ebp - 0x140]
mov ecx, dword [eax + 0x73c]
push dword [ebp - 0x138]
mov eax, dword [ecx]
call dword [eax + 0x18]
neg eax
sbb eax, eax
neg eax
mov dword [ebp - 0x11c], eax
jne 0x433638
mov eax, dword [ebp - 0x118]
mov ecx, dword [eax + 0x76c]
test ecx, ecx
je 0x43362a
cmp dword [esi - 0xc], 0
je 0x43362a
mov eax, dword [ecx]
push esi
call dword [eax + 0x24]
push 1
push esi
push 1
mov ecx, 0x4d1720
call fcn.00459eb0
mov eax, dword [ebp - 0x11c]
jmp 0x433638
mov esi, dword [ebp - 0x124]
xor ecx, ecx
test eax, eax
je 0x433643
cmp ecx, 1
jne 0x433678
push dword [ebp - 0x140]
push dword [ebp - 0x138]
call dword [sym.imp.jansson.dll_json_integer]
push eax
mov eax, dword [ebp - 0x118]
push dword [eax + 0x740]
call dword [sym.imp.jansson.dll_json_array_append_new]
mov ecx, dword [ebp - 0x120]
add esp, 0x10
call fcn.00430e70
jmp 0x4336a4
cmp dword [ebp - 0x130], 1
je 0x43368d
mov eax, dword [ebp - 0x118]
inc dword [eax + 0x758]
mov ecx, dword [ebp - 0x120]
call fcn.00430e70
jmp 0x4336a4
mov dword [ebp - 0x12c], 1
mov byte [ebp - 4], 2
add ebx, 0xfffffff0
or eax, 0xffffffff
lock xadd dword [ebx + 0xc], eax
dec eax
test eax, eax
jg 0x4336c0
mov ecx, dword [ebx]
push ebx
mov eax, dword [ecx]
call dword [eax + 4]
or ebx, 0xffffffff
mov byte [ebp - 4], 1
add esi, 0xfffffff0
mov eax, ebx
lock xadd dword [esi + 0xc], eax
dec eax
test eax, eax
jg 0x4336de
mov ecx, dword [esi]
push esi
mov eax, dword [ecx]
call dword [eax + 4]
mov edx, dword [ebp - 0x144]
mov eax, ebx
mov byte [ebp - 4], 0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4336fc
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
add edi, 0xfffffff0
lock xadd dword [edi + 0xc], ebx
dec ebx
test ebx, ebx
jg 0x433718
mov ecx, dword [edi]
push edi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, dword [ebp - 0x12c]
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.0046be2f
mov esp, ebp
pop ebp
ret 4