Function at 0x4021d0
Capabilities:
Create thread

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4b2120
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push esi
push edi
mov eax, dword [0x4e4520]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
mov dword [ebp - 0x1c], esi
mov eax, dword [esi]
mov edi, 1
mov ecx, 0x40
mov eax, dword [eax]
cmp eax, edi
cmovg edi, eax
cmp edi, ecx
cmovg edi, ecx
mov dword [ebp - 0x24], edi
cmp edi, eax
jne 0x40223c
push edi
push str.DownLoadContent:_ThreadNum___d
push 1
push 0xd3
push 0x4d2648
push 0x4d265c
call fcn.00462700
add esp, 0x18
jmp 0x40225c
push eax
push edi
push str.DownLoadContent:_ThreadNum___d__request_thread_num___d_
push 1
push 0xd7
push 0x4d26b8
push 0x4d26cc
call fcn.00462700
add esp, 0x1c
mov eax, dword [esi + 0xc]
sub esp, 0x18
cdq
mov ecx, esp
idiv edi
mov dword [ebp - 0x38], esp
mov dword [ebp - 0x20], eax
xor eax, eax
push 2
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push 0x4d26ec
mov word [ecx], ax
call fcn.00402f30
sub esp, 0x18
mov dword [ebp - 4], 0
mov eax, dword [esi]
mov ecx, esp
xor edx, edx
add eax, 0x20
push 0xffffffffffffffff
push edx
mov dword [ecx + 0x14], 7
mov dword [ecx + 0x10], 0
push eax
mov word [ecx], dx
call fcn.00402bb0
mov dword [ebp - 4], 0xffffffff
call fcn.0040e9c0
add esp, 0x30
mov dword [ebp - 0x2c], eax
test eax, eax
jne 0x40230e
mov eax, dword [esi]
add eax, 0x20
cmp dword [eax + 0x14], 8
jb 0x4022dc
mov eax, dword [eax]
push eax
push str.ERR:Open_file_fail____s_
push 1
push 0xde
push 0x4d2728
push 0x4d274c
call fcn.00462a90
add esp, 0x18
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret
xor ecx, ecx
mov eax, edi
mov edx, 4
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.004777e0
xor ecx, ecx
mov dword [ebp - 0x28], eax
xor esi, esi
mov dword [ebp - 0x44], ecx
add esp, 4
mov dword [ebp - 0x40], esi
mov dword [ebp - 0x3c], ecx
mov dword [ebp - 4], 1
lea eax, [ebp - 0x5c]
xorps xmm0, xmm0
mov dword [ebp - 0x5c], esi
push eax
movdqu xmmword [ebp - 0x58], xmm0
mov dword [ebp - 0x48], esi
call dword [sym.imp.KERNEL32.dll_InitializeCriticalSection]
xor edx, edx
mov dword [ebp - 0x14], edx
test edi, edi
jle 0x402489
lea eax, [edi - 1]
mov dword [ebp - 0x18], edx
mov dword [ebp - 0x30], eax
mov edi, edi
push 0x1c
call fcn.0047c547
mov edi, eax
add esp, 4
test edi, edi
je 0x402395
xorps xmm0, xmm0
movdqu xmmword [edi], xmm0
movq qword [edi + 0x10], xmm0
mov dword [edi + 0x18], 0
jmp 0x402397
xor edi, edi
mov ecx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
mov dword [edi + 4], ecx
mov ecx, dword [ebp - 0x2c]
mov dword [edi + 8], eax
mov eax, dword [ebp - 0x14]
mov dword [edi + 0xc], edx
mov dword [edi + 0x10], eax
mov dword [edi + 0x14], ecx
lea ecx, [ebp - 0x5c]
mov dword [edi + 0x18], ecx
mov ecx, dword [ebp - 0x1c]
mov dword [ebp - 0x10], edi
mov byte [edi], 0
cmp eax, dword [ebp - 0x30]
jne 0x4023da
mov eax, 1
sub eax, dword [ebp - 0x24]
imul eax, edx
add eax, dword [ecx + 0xc]
mov dword [edi + 0xc], eax
lea eax, [ebp - 0x10]
cmp eax, esi
jae 0x402414
mov ecx, eax
mov eax, dword [ebp - 0x44]
cmp eax, ecx
ja 0x402414
sub ecx, eax
sar ecx, 2
mov dword [ebp - 0x34], ecx
cmp esi, dword [ebp - 0x3c]
jne 0x402409
push ecx
lea ecx, [ebp - 0x44]
call fcn.004029c0
mov esi, dword [ebp - 0x40]
mov eax, dword [ebp - 0x44]
mov ecx, dword [ebp - 0x34]
test esi, esi
je 0x40242b
mov eax, dword [eax + ecx*4]
mov dword [esi], eax
jmp 0x40242b
cmp esi, dword [ebp - 0x3c]
jne 0x402425
push ecx
lea ecx, [ebp - 0x44]
call fcn.004029c0
mov esi, dword [ebp - 0x40]
test esi, esi
je 0x40242b
mov dword [esi], edi
lea eax, [ebp - 0x38]
mov dword [ebp - 0x38], 0
push eax
push 0
push edi
push 0x402550
push 0
add esi, 4
push 0
mov dword [ebp - 0x40], esi
call dword [sym.imp.KERNEL32.dll_CreateThread]
mov edx, dword [ebp - 0x14]
mov ecx, dword [ebp - 0x28]
mov dword [ecx + edx*4], eax
mov eax, dword [edi + 0xc]
mov ecx, dword [edi + 8]
push eax
dec eax
add eax, ecx
push eax
push ecx
push edx
push str.__d___d___d_length___d_n
call fcn.0040eda0
mov eax, dword [ebp - 0x14]
add esp, 0x14
mov ecx, dword [ebp - 0x20]
inc eax
add dword [ebp - 0x18], ecx
mov edi, dword [ebp - 0x24]
mov dword [ebp - 0x14], eax
cmp eax, edi
jl 0x402370
push str.WaitForMultipleObjects..._n
push 1
push 0xff
push 0x4d27c4
push 0x4d27d8
call fcn.00462700
add esp, 0x14
push 0xffffffffffffffff
push 1
push dword [ebp - 0x28]
push edi
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
push eax
push str.WaitForMultipleObjects_end__WaitRet_d_n
push 1
push 0x106
push 0x4d2820
push str.CHttpDownload::DownLoadContent
call fcn.00462700
mov eax, dword [ebp - 0x44]
add esp, 0x18
sub esi, eax
mov ecx, 1
sar esi, 2
xor edi, edi
mov dword [ebp - 0x18], ecx
test esi, esi
je 0x402514
lea ebx, [ebx]
mov eax, dword [eax + edi*4]
xor edx, edx
movzx ecx, cl
push eax
cmp byte [eax], dl
cmove ecx, edx
mov dword [ebp - 0x18], ecx
call fcn.0047c598
mov ecx, dword [ebp - 0x18]
inc edi
mov eax, dword [ebp - 0x44]
add esp, 4
cmp edi, esi
jb 0x4024f0
push dword [ebp - 0x2c]
call fcn.0047e4b2
add esp, 4
lea eax, [ebp - 0x5c]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteCriticalSection]
mov ecx, dword [ebp - 0x44]
test ecx, ecx
je 0x402539
push ecx
call fcn.0047c598
add esp, 4
mov al, byte [ebp - 0x18]
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret