Function at 0x401c3e
Capabilities:
Resume thread

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x2c
push ebx
push esi
push edi
push str.Downloader
mov ebx, ecx
call fcn.00479fc0
xor edi, edi
lea eax, [ebx + 0xa4]
mov dword [ebx + 0xc0], edi
cmp dword [eax + 0x14], 0x10
pop ecx
jb 0x401c6d
mov eax, dword [eax]
push edi
push 0x80
push 2
push edi
push 2
push 0xc0000000
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov dword [ebx + 0xd4], eax
cmp eax, 0xffffffff
jne 0x401c9e
mov dword [ebx + 0xc0], 0x5a
jmp 0x401ead
lea eax, [ebx + 0x6c]
cmp dword [eax + 0x14], 0x10
jb 0x401ca9
mov eax, dword [eax]
push eax
call fcn.004017fa
pop ecx
call fcn.005c46a6
mov esi, edx
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], esi
cmp esi, edi
jg 0x401cd8
jl 0x401cc9
cmp eax, edi
ja 0x401cd8
mov dword [ebx + 0xc0], 0x5b
jmp 0x401ead
push edi
push eax
push esi
push 4
push edi
push dword [ebx + 0xd4]
mov eax, esi
sar eax, 0x1f
call dword [sym.imp.KERNEL32.dll_CreateFileMappingA]
mov dword [ebx + 0xd8], eax
cmp eax, edi
jne 0x401d08
mov dword [ebx + 0xc0], 0x5c
jmp 0x401ead
cmp esi, edi
jl 0x401dc9
jg 0x401d20
cmp dword [esp + 0x20], 0x1000000
jb 0x401dc9
mov dword [esp + 0xc], edi
jmp 0x401d28
xor edi, edi
push 0x60
call fcn.004ba280
pop ecx
cmp eax, edi
je 0x401d43
push dword [esp + 0xc]
mov ecx, ebx
call fcn.00401068
mov esi, eax
jmp 0x401d45
xor esi, esi
push dword [esp + 0x24]
xor edi, edi
push dword [esp + 0x24]
mov dword [esp + 0x18], esi
push edi
push dword [esp + 0x18]
call fcn.005c4570
mov dword [esi + 0x10], eax
xor eax, eax
mov dword [esi + 0x14], edx
cmp dword [esp + 0xc], eax
jne 0x401d7d
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
sub ecx, 1
sbb edx, eax
mov dword [esi + 0x20], ecx
jmp 0x401d9e
push dword [esp + 0x24]
mov ecx, dword [esp + 0x10]
push dword [esp + 0x24]
add ecx, 1
adc edi, eax
push edi
push ecx
call fcn.005c4570
sub eax, 1
sbb edx, 0
mov dword [esi + 0x20], eax
mov dword [esi + 0x24], edx
call fcn.004011d9
lea eax, [esp + 0x10]
lea esi, [ebx + 0xc4]
call fcn.00402118
inc dword [esp + 0xc]
cmp dword [esp + 0xc], 1
jb 0x401d26
jmp 0x401e8f
mov dword [esp + 0xc], edi
mov dword [esp + 0x28], edi
mov dword [esp + 0x2c], edi
jmp 0x401ddd
mov esi, dword [esp + 0x24]
xor edi, edi
mov eax, dword [esp + 0x20]
mov ecx, 0x1000000
mov dword [esp + 0x14], edi
sub eax, ecx
mov edi, esi
sbb edi, 0
mov dword [esp + 0x10], ecx
mov dword [esp + 0x30], eax
test edi, edi
jg 0x401e0f
jl 0x401e03
test eax, eax
jae 0x401e0f
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], esi
push 0x60
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], edi
call fcn.004ba280
pop ecx
test eax, eax
je 0x401e34
push dword [esp + 0xc]
mov ecx, ebx
call fcn.00401068
inc dword [esp + 0xc]
jmp 0x401e36
xor eax, eax
mov ecx, dword [esp + 0x28]
mov edx, dword [esp + 0x2c]
mov dword [eax + 0x10], ecx
add ecx, dword [esp + 0x10]
mov dword [eax + 0x14], edx
adc edx, dword [esp + 0x14]
mov dword [esp + 0x28], ecx
sub ecx, 1
mov dword [esp + 0x2c], edx
sbb edx, 0
mov dword [eax + 0x20], ecx
mov esi, eax
mov dword [esp + 0x1c], eax
mov dword [eax + 0x24], edx
call fcn.004011d9
lea eax, [esp + 0x1c]
lea esi, [ebx + 0xc4]
call fcn.00402118
test edi, edi
jg 0x401dd7
jl 0x401e8f
cmp dword [esp + 0x30], 0
ja 0x401dd7
mov esi, dword [ebx + 0xc4]
jmp 0x401ea5
mov eax, dword [esi]
push dword [eax + 8]
call dword [sym.imp.KERNEL32.dll_ResumeThread]
add esi, 4
cmp esi, dword [ebx + 0xc8]
jne 0x401e97
mov ecx, ebx
call fcn.00401ebd
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret