Function at 0x4f3ef0
Capabilities:
Download url
Receive data

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x24
push ebx
push esi
mov esi, dword [ebp + 0x10]
push edi
xor edi, edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 8], edi
mov dword [ebp - 0x1c], 1
mov byte [ebp - 1], 0
cmp dword [0x5c2c30], edi
jne 0x4f3f29
call fcn.004f3040
mov dword [0x5c2c30], eax
cmp eax, edi
je 0x4f400e
push 0x800
mov byte [ebp - 1], 1
call fcn.004fc6be
push 0x800
mov ebx, eax
push 0
push ebx
call fcn.005067df
mov edx, ebx
add esp, 0x10
mov eax, esi
sub edx, esi
nop
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4f3f50
lea eax, [ebx - 1]
lea ecx, [ecx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4f3f60
mov ecx, dword [str.wf_startqs.htmoswtrue]
mov dword [eax], ecx
mov edx, dword [0x578e78]
mov dword [eax + 4], edx
mov ecx, dword [0x578e7c]
mov dword [eax + 8], ecx
mov edx, dword [0x578e80]
mov dword [eax + 0xc], edx
mov ecx, dword [0x578e84]
mov dword [eax + 0x10], ecx
mov edx, dword [0x578e88]
mov dword [eax + 0x14], edx
mov eax, dword [ebp + 0x14]
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f3fa2
sub eax, esi
lea edi, [ebx - 1]
mov edi, edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4f3fb0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebx
call fcn.004f3540
push ebx
call fcn.004fedfc
mov eax, dword [ebp + 8]
push 0x7c
push eax
call fcn.005056ca
add esp, 0xc
test eax, eax
je 0x4f400e
mov edi, dword [ebp - 8]
mov ecx, eax
inc edi
lea esi, [ecx + 1]
mov edi, edi
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4f3ff0
sub ecx, esi
je 0x4f400b
inc eax
push 0x7c
push eax
call fcn.005056ca
add esp, 8
test eax, eax
jne 0x4f3fe8
mov dword [ebp - 8], edi
mov esi, dword [ebp + 0xc]
mov eax, esi
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f4016
sub eax, edx
inc eax
push eax
call fcn.004fc6be
mov ebx, eax
mov edx, ebx
add esp, 4
mov dword [ebp - 0xc], ebx
mov eax, esi
sub edx, esi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4f4034
push 0x56d164
push ebx
call fcn.004ff5b7
add esp, 8
test eax, eax
je 0x4f407f
add eax, 2
push 0x551f88
push eax
call fcn.004ff5b7
add esp, 8
test eax, eax
je 0x4f407f
mov byte [eax], 0
mov eax, ebx
lea edx, [eax + 1]
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f4070
sub eax, edx
mov byte [eax + ebx - 1], cl
jmp 0x4f4082
mov byte [ebx], 0
mov edi, dword [ebp + 8]
mov eax, edi
lea edx, [eax + 1]
lea ebx, [ebx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f4090
sub eax, edx
inc eax
push eax
call fcn.004fc6be
mov esi, eax
mov edx, esi
add esp, 4
mov eax, edi
sub edx, edi
jmp 0x4f40b0
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4f40b0
mov eax, edi
lea edx, [eax + 1]
nop
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f40c0
sub eax, edx
mov byte [eax + esi], cl
mov dword [ebp - 0x24], esi
test esi, esi
je 0x4f4400
jmp 0x4f40e0
push 0x5780c8
push esi
call fcn.004ff5b7
add esp, 8
mov dword [ebp + 0xc], eax
test eax, eax
je 0x4f43f6
mov edi, eax
sub edi, esi
lea ecx, [edi + 1]
push ecx
call fcn.004fc6be
push edi
mov ebx, eax
push esi
push ebx
mov dword [ebp + 8], ebx
call fcn.0050332c
mov edx, dword [ebp + 0xc]
sub ebx, esi
push 0x104
mov byte [ebx + edx], 0
call fcn.004fc6be
mov esi, eax
push 0x104
mov dword [ebp - 0x10], esi
call fcn.004fc6be
mov ebx, eax
mov eax, dword [ebp + 8]
push ebx
push esi
push 0
push 0
push eax
call fcn.004ff982
mov eax, ebx
add esp, 0x2c
mov esi, eax
lea ecx, [ecx]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f4150
mov edi, dword [ebp - 0x10]
sub eax, esi
dec edi
lea ecx, [ecx]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4f4160
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
push ebx
rep movsb byte es:[edi], byte [esi]
call fcn.004fedfc
mov eax, dword [ebp + 0x10]
add esp, 4
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f4185
mov edi, dword [ebp - 0x10]
sub eax, edx
mov edx, eax
mov eax, edi
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f4198
sub eax, esi
lea ecx, [eax + edx + 1]
push ecx
call fcn.004fc6be
mov ebx, eax
mov eax, dword [ebp + 0x10]
mov edx, ebx
add esp, 4
mov dword [ebp - 0x18], ebx
sub edx, eax
lea ebx, [ebx]
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4f41c0
mov eax, edi
mov ecx, edi
mov edi, edi
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4f41d0
sub eax, ecx
mov esi, ecx
lea edi, [ebx - 1]
mov edi, edi
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4f41e0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp + 0x10]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f4200
mov edi, dword [ebp - 0x10]
sub eax, edx
mov ecx, eax
mov eax, edi
lea esi, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4f4213
sub eax, esi
add eax, ecx
push edi
mov byte [eax + ebx], dl
call fcn.004fedfc
mov eax, dword [ebp - 0xc]
add esp, 4
lea ecx, [eax + 1]
mov dl, byte [eax]
inc eax
test dl, dl
jne 0x4f4230
sub eax, ecx
mov ecx, dword [ebp + 8]
lea esi, [ecx + 1]
nop
mov dl, byte [ecx]
inc ecx
test dl, dl
jne 0x4f4240
sub ecx, esi
lea edx, [ecx + eax + 1]
push edx
call fcn.004fc6be
mov ebx, eax
mov eax, dword [ebp - 0xc]
mov edx, ebx
add esp, 4
mov dword [ebp - 0x20], ebx
sub edx, eax
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4f4262
mov eax, dword [ebp + 8]
mov esi, eax
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f4271
sub eax, esi
lea edi, [ebx - 1]
lea ecx, [ecx]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4f4280
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
mov eax, dword [ebp - 0xc]
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea edx, [eax + 1]
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f42a0
sub eax, edx
mov edx, eax
mov eax, dword [ebp + 8]
lea esi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f42b1
sub eax, esi
push 0
add eax, edx
push 0
mov byte [eax + ebx], cl
mov eax, dword [ebp - 0x18]
push eax
push ebx
push 0
call sub.urlmon.dll_URLDownloadToFileA
test eax, eax
je 0x4f42df
mov dword [ebp - 0x1c], 0
jmp 0x4f43d2
cmp byte [ebp - 1], 0
je 0x4f43d2
inc dword [ebp - 0x14]
push 0x800
call fcn.004fc6be
push 0x800
mov ebx, eax
call fcn.004fc6be
push 0x800
mov esi, eax
push 0
push ebx
mov dword [ebp - 0x10], esi
call fcn.005067df
mov eax, dword [ebp + 0x10]
mov edx, ebx
add esp, 0x14
sub edx, eax
mov edi, edi
mov cl, byte [eax]
mov byte [edx + eax], cl
inc eax
test cl, cl
jne 0x4f4320
lea eax, [ebx - 1]
lea ecx, [ecx]
mov cl, byte [eax + 1]
inc eax
test cl, cl
jne 0x4f4330
mov ecx, dword [str.wf_updatestatus.htm]
mov dword [eax], ecx
mov edx, dword [0x578e60]
mov dword [eax + 4], edx
mov ecx, dword [0x578e64]
mov dword [eax + 8], ecx
mov edx, dword [0x578e68]
mov dword [eax + 0xc], edx
mov ecx, dword [0x578e6c]
mov dword [eax + 0x10], ecx
mov dl, byte [0x578e70]
mov ecx, dword [ebp - 0x14]
mov byte [eax + 0x14], dl
mov eax, dword [ebp - 8]
push eax
push ecx
push 5
push str.uid_i__cfi_i__sup_i
push 0x800
push esi
call fcn.004ff284
add esp, 0x18
mov eax, esi
lea esp, [esp]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4f4390
sub eax, esi
lea edi, [ebx - 1]
lea esp, [esp]
mov cl, byte [edi + 1]
inc edi
test cl, cl
jne 0x4f43a0
mov ecx, eax
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov ecx, ebx
call fcn.004f3540
push ebx
call fcn.004fedfc
mov edx, dword [ebp - 0x10]
push edx
call fcn.004fedfc
mov ebx, dword [ebp - 0x20]
add esp, 8
push ebx
call fcn.004fedfc
mov eax, dword [ebp - 0x18]
push eax
call fcn.004fedfc
mov ecx, dword [ebp + 8]
push ecx
call fcn.004fedfc
mov ebx, dword [ebp - 0xc]
add esp, 0xc
inc dword [ebp + 0xc]
mov eax, dword [ebp + 0xc]
mov esi, eax
test eax, eax
jne 0x4f40e0
mov edx, dword [ebp - 0x24]
push edx
call fcn.004fedfc
push ebx
call fcn.004fedfc
mov eax, dword [ebp - 0x1c]
add esp, 8
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret