Function at 0x475090
Capabilities:
Delete file
Read data from internet
Receive data

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d291d
mov eax, dword fs:[0]
push eax
sub esp, 0x50
push ebx
push esi
push edi
mov eax, dword [0x5020a8]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov dword [ebp - 0x30], edi
mov eax, dword [ebp + 8]
lea esi, [edi + 0x14]
push esi
mov dword [ebp - 0x2c], eax
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
lea eax, [ebp - 0x2c]
xor ebx, ebx
push eax
lea eax, [ebp - 0x5c]
mov dword [ebp - 0x20], ebx
push eax
lea ecx, [edi + 0x2c]
call fcn.00403ff0
mov eax, dword [ebp - 0x54]
cmp byte [eax + 0xd], bl
jne 0x47575e
mov ecx, dword [ebp + 8]
cmp ecx, dword [eax + 0x10]
jb 0x47575e
cmp eax, dword [edi + 0x2c]
je 0x475105
mov ebx, dword [eax + 0x14]
mov dword [ebp - 0x20], ebx
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
test ebx, ebx
je 0x475765
cmp dword [ebx], 5
jne 0x475126
cmp dword [ebx + 0xc], 0
je 0x475126
mov esi, 1
jmp 0x475128
xor esi, esi
push 8
mov dword [ebx], 3
call fcn.0049f987
mov ecx, edi
mov dword [ebp - 0x14], eax
add esp, 4
mov dword [eax], ecx
mov ecx, dword [ebp + 8]
mov dword [eax + 4], ecx
lea ecx, [ebx + 0xc]
mov dword [ebp - 0x44], ecx
mov ecx, dword [ebx + 0x14]
mov dword [ebp - 0x2c], ecx
mov edi, dword [ecx - 0xc]
test esi, esi
je 0x475389
mov edx, dword [ebx + 0xc]
mov esi, dword [ebx + 4]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x4c], esi
test edi, edi
je 0x475183
sub esp, 8
push eax
push ecx
push ecx
mov ecx, esi
call fcn.00477b30
add esp, 0x14
mov ebx, eax
jmp 0x4756ed
add ebx, 0x18
test edx, edx
je 0x4755b7
push 0x4d9516
push 0x100
call fcn.0049ff2c
add esp, 8
mov dword [ebp - 0x5c], vtable.CxAutoArray_unsigned_char_.0
mov dword [ebp - 0x58], 0
test eax, eax
je 0x4751bc
mov dword [ebp - 0x58], eax
mov dword [ebp - 0x54], 0
mov dword [ebp - 4], 0
test ebx, ebx
je 0x4751ce
mov esi, dword [ebx + 4]
sub esi, dword [ebx]
jmp 0x4751d0
xor esi, esi
mov ecx, dword [ebp - 0x1c]
xor edi, edi
call fcn.004878e0
mov ecx, edx
mov dword [ebp - 0x44], eax
mov dword [ebp - 0x3c], ecx
test ecx, ecx
jne 0x4751ea
test eax, eax
je 0x4751f6
test ebx, ebx
je 0x4751f6
push eax
mov ecx, ebx
call fcn.00477f50
call dword [sym.imp.KERNEL32.dll_GetTickCount]
lea eax, [ebp - 0x18]
mov dword [ebp - 0x18], edi
push eax
mov eax, dword [ebp - 0x1c]
push 0x100
push dword [ebp - 0x58]
mov eax, dword [eax + 0x10]
push dword [eax]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x475313
mov ecx, dword [ebp - 0x18]
mov dword [ebp - 0x34], esi
mov dword [ebp - 0x38], edi
test ecx, ecx
je 0x47532d
test ebx, ebx
je 0x4752bf
mov edx, dword [ebx + 4]
mov eax, dword [ebx]
mov dword [ebp - 0x28], edx
sub dword [ebp - 0x28], eax
xor eax, eax
mov dword [ebp - 0x24], ecx
add dword [ebp - 0x24], esi
mov dword [ebp - 0x2c], edx
adc eax, edi
test eax, eax
jb 0x47529f
ja 0x475260
mov eax, dword [ebp - 0x24]
cmp eax, dword [ebp - 0x28]
jbe 0x47529f
mov eax, dword [ebx]
lea edi, [esi + ecx]
sub edx, eax
cmp edi, edx
jb 0x47529a
jbe 0x47529f
mov eax, dword [ebx + 8]
sub eax, dword [ebx]
cmp edi, eax
jbe 0x475284
push ecx
push edi
mov ecx, ebx
call fcn.004785a0
mov ecx, dword [ebp - 0x18]
jmp 0x47529f
sub edi, edx
push edi
push 0
push dword [ebp - 0x2c]
call fcn.004a1810
mov eax, dword [ebp - 0x2c]
add esp, 0xc
mov ecx, dword [ebp - 0x18]
add eax, edi
mov dword [ebx + 4], eax
mov eax, dword [ebx]
push ecx
push dword [ebp - 0x58]
add eax, esi
push eax
call fcn.004a1290
mov ecx, dword [ebp - 0x18]
add esp, 0xc
mov esi, ecx
xor edi, edi
add esi, dword [ebp - 0x34]
adc edi, dword [ebp - 0x38]
jmp 0x4752c4
add esi, ecx
adc edi, 0
push ecx
push edi
push esi
push dword [ebp - 0x3c]
push dword [ebp - 0x44]
push 0
push dword [ebp - 0x14]
push dword [ebp - 0x1c]
push dword [ebp - 0x4c]
call fcn.00475cb0
add esp, 0x24
test eax, eax
je 0x475313
mov eax, dword [ebp - 0x20]
mov dword [ebp - 0x20], eax
lea eax, [ebp - 0x18]
push eax
mov eax, dword [ebp - 0x1c]
push 0x100
push dword [ebp - 0x58]
mov dword [ebp - 0x18], 0
mov eax, dword [eax + 0x10]
push dword [eax]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x475221
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x475323
push eax
call fcn.0049ff35
add esp, 4
push 8
push dword [ebp - 0x14]
jmp 0x47573d
mov eax, dword [ebp - 0x58]
test eax, eax
je 0x47533d
push eax
call fcn.0049ff35
add esp, 4
push 8
push dword [ebp - 0x14]
mov ebx, 1
call fcn.0049f9b7
add esp, 8
mov esi, dword [ebp - 0x20]
push dword [ebp + 8]
mov eax, ebx
neg eax
push ebx
sbb eax, eax
add eax, 8
mov dword [esi], eax
mov eax, dword [ebp - 0x30]
push 0x547
push dword [eax + 0x10]
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, dword [esi + 0x2c]
test eax, eax
je 0x475765
push eax
call dword [sym.imp.KERNEL32.dll_SetEvent]
jmp 0x475765
mov edx, dword [ebx + 4]
mov dword [ebp - 0x28], edx
test edi, edi
je 0x4755be
test edx, edx
je 0x4755b7
test ecx, ecx
je 0x4755b7
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
lea eax, [ebp - 0x50]
mov dword [ebp - 4], 1
push eax
mov ecx, edx
call fcn.00487930
mov eax, dword [ebp - 0x50]
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x47540f
mov esi, dword [ebp - 0x4c]
test esi, esi
je 0x475323
or edi, 0xffffffff
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x475323
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x475323
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
push 8
push dword [ebp - 0x14]
jmp 0x47573d
mov ebx, dword [ebp - 0x4c]
test ebx, ebx
je 0x475423
lock inc dword [ebx + 4]
mov eax, dword [ebp - 0x50]
mov ebx, dword [ebp - 0x4c]
mov dword [ebp - 0x1c], eax
mov ecx, dword [eax + 0x10]
mov dword [ebp - 0x40], eax
mov dword [ebp - 0x3c], ebx
test ecx, ecx
je 0x47543c
cmp dword [ecx], 0
je 0x47543c
mov esi, 1
jmp 0x47543e
xor esi, esi
or edi, 0xffffffff
test ebx, ebx
je 0x475467
mov eax, edi
lock xadd dword [ebx + 4], eax
jne 0x475464
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
mov eax, edi
lock xadd dword [ebx + 8], eax
jne 0x475464
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov eax, dword [ebp - 0x1c]
test esi, esi
je 0x4754b7
push 0x13
lea ecx, [ebp - 0x4c]
push ecx
mov ecx, eax
call fcn.00487760
mov esi, dword [ebp - 0x4c]
push esi
call fcn.004b1e87
add esp, 4
mov dword [ebp - 0x4c], eax
add esi, 0xfffffff0
mov ecx, edi
lock xadd dword [esi + 0xc], ecx
dec ecx
test ecx, ecx
jg 0x47549e
mov ecx, dword [esi]
push esi
mov edx, dword [ecx]
call dword [edx + 4]
mov eax, 0x51eb851f
mul dword [ebp - 0x4c]
shr edx, 5
cmp edx, 3
je 0x475535
cmp edx, 4
jne 0x4754ef
test ebx, ebx
je 0x475323
mov eax, edi
lock xadd dword [ebx + 4], eax
jne 0x475323
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
lock xadd dword [ebx + 8], edi
dec edi
jne 0x475323
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
push 8
push dword [ebp - 0x14]
jmp 0x47573d
cmp edx, 5
jne 0x47552c
test ebx, ebx
je 0x475323
mov eax, edi
lock xadd dword [ebx + 4], eax
jne 0x475323
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
lock xadd dword [ebx + 8], edi
dec edi
jne 0x475323
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
push 8
push dword [ebp - 0x14]
jmp 0x47573d
push dword [ebp - 0x2c]
call dword [sym.imp.KERNEL32.dll_DeleteFileW]
mov eax, dword [ebp - 0x44]
test eax, eax
je 0x475572
test ebx, ebx
je 0x475544
lock inc dword [ebx + 4]
mov esi, dword [eax + 4]
mov ecx, dword [ebp - 0x1c]
mov dword [eax], ecx
mov dword [eax + 4], ebx
test esi, esi
je 0x475572
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x475572
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, edi
lock xadd dword [esi + 8], eax
jne 0x475572
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov edx, dword [ebp - 0x1c]
sub esp, 8
push dword [ebp - 0x14]
push ecx
push dword [ebp - 0x2c]
mov ecx, dword [ebp - 0x28]
call fcn.00477b30
add esp, 0x14
mov dword [ebp - 0x4c], eax
test ebx, ebx
je 0x4755af
mov eax, edi
lock xadd dword [ebx + 4], eax
jne 0x4755af
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
lock xadd dword [ebx + 8], edi
dec edi
jne 0x4755af
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov ebx, dword [ebp - 0x4c]
jmp 0x4756ed
xor ebx, ebx
jmp 0x4756f0
lea ecx, [ebx + 0x18]
mov dword [ebp - 0x4c], ecx
test edx, edx
je 0x47573a
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x3c], 0
lea eax, [ebp - 0x48]
mov dword [ebp - 4], 2
push eax
mov ecx, edx
call fcn.00487930
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x1c], ecx
test ecx, ecx
jne 0x475609
test esi, esi
je 0x475323
or edi, 0xffffffff
jmp 0x47570d
test esi, esi
je 0x47561a
lock inc dword [esi + 4]
mov ecx, dword [ebp - 0x48]
mov esi, dword [ebp - 0x44]
mov dword [ebp - 0x1c], ecx
mov eax, dword [ecx + 0x10]
mov dword [ebp - 0x40], ecx
mov dword [ebp - 0x3c], esi
test eax, eax
je 0x475633
cmp dword [eax], 0
mov dword [ebp - 0x2c], 1
jne 0x47563a
mov dword [ebp - 0x2c], 0
or edi, 0xffffffff
test esi, esi
je 0x475663
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x475663
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
mov eax, edi
lock xadd dword [esi + 8], eax
jne 0x475660
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov ecx, dword [ebp - 0x1c]
cmp dword [ebp - 0x2c], 0
je 0x475705
lea eax, [ebx + 0xc]
test eax, eax
je 0x4756a7
test esi, esi
je 0x47567c
lock inc dword [esi + 4]
mov ebx, dword [eax + 4]
mov dword [eax], ecx
mov dword [eax + 4], esi
test ebx, ebx
je 0x4756a7
mov eax, edi
lock xadd dword [ebx + 4], eax
jne 0x4756a7
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax]
mov eax, edi
lock xadd dword [ebx + 8], eax
jne 0x4756a7
mov eax, dword [ebx]
mov ecx, ebx
call dword [eax + 4]
mov ecx, dword [ebp - 0x4c]
test ecx, ecx
je 0x4756b3
mov eax, dword [ecx]
mov dword [ecx + 4], eax
mov edx, dword [ebp - 0x1c]
sub esp, 8
push dword [ebp - 0x14]
push ecx
push ecx
mov ecx, dword [ebp - 0x28]
call fcn.00477940
add esp, 0x14
mov ebx, eax
test esi, esi
je 0x4756ed
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x4756ed
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x4756ed
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
mov eax, dword [ebp - 0x14]
push 8
push eax
call fcn.0049f9b7
add esp, 8
test ebx, ebx
jne 0x47534f
jmp 0x475747
test esi, esi
je 0x475323
mov eax, edi
lock xadd dword [esi + 4], eax
jne 0x475323
mov eax, dword [esi]
mov ecx, esi
call dword [eax]
lock xadd dword [esi + 8], edi
dec edi
jne 0x475323
mov eax, dword [esi]
mov ecx, esi
call dword [eax + 4]
push 8
push dword [ebp - 0x14]
jmp 0x47573d
push 8
push eax
xor ebx, ebx
call fcn.0049f9b7
add esp, 8
mov esi, dword [ebp - 0x20]
cmp dword [esi], 4
jne 0x475352
mov dword [esi], 5
jmp 0x475372
push esi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
xor eax, eax
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4