Function at 0x428191
Capabilities:
Check http status code
Create http request
Download and write a file
Read data from internet
Receive and write data from server to client
Receive data
Reference http user-agent string
Write file on windows

Disassembly:
push ebp
mov ebp, esp
mov eax, 0x1b50
call fcn.00453380
push ebx
push esi
mov ebx, ecx
push edi
mov esi, ebx
mov dword [ebp - 0x3c], ebx
call fcn.00424227
test al, al
jne 0x4281b8
xor eax, eax
jmp 0x4292c0
push 0
push dword [ebp + 0xc]
mov edi, ebx
call fcn.0042aa92
push 0
push dword [ebp + 8]
mov esi, eax
mov dword [ebp - 0x14], esi
call fcn.0042aa92
and dword [ebp - 0xc], 0
mov ecx, eax
mov dword [ebp - 0x2c], ecx
test esi, esi
je 0x4281f5
cmp byte [esi], 0
mov eax, esi
je 0x4281f5
cmp byte [eax], 0x5c
jne 0x4281ef
mov byte [eax], 0x2f
inc eax
cmp byte [eax], 0
jne 0x4281e7
test ecx, ecx
je 0x42820e
cmp byte [ecx], 0
mov eax, ecx
je 0x42820e
cmp byte [eax], 0x5c
jne 0x428208
mov byte [eax], 0x2f
inc eax
cmp byte [eax], 0
jne 0x428200
mov eax, dword [ebp + 0x2c]
mov ecx, esi
call fcn.00426fcf
test al, al
je 0x428229
push 0
push esi
call fcn.0042aa92
mov dword [ebp - 0x28], eax
jmp 0x428268
mov eax, esi
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42822e
sub eax, edi
add eax, 2
push eax
push dword [ebp - 0x2c]
mov edi, ebx
call fcn.0042aa92
push 0
push esi
mov dword [ebp - 0x28], eax
call fcn.0042aa92
push 0x2f
push dword [ebp - 0x28]
mov dword [ebp + 0x2c], eax
push ebx
call fcn.0042733d
lea edi, [ebp + 0x2c]
mov eax, ebx
call fcn.0042abf3
lea eax, [ebp - 0x15c]
xor edi, edi
push eax
push esi
mov eax, ebx
mov byte [ebp - 0x294], 0
mov dword [ebp - 8], edi
mov dword [ebp - 0x18], edi
mov dword [ebp - 0x34], edi
mov dword [ebp - 0x30], edi
call fcn.00427bba
mov esi, dword [ebp + 0x20]
test al, al
je 0x42854f
lea eax, [ebp - 0x18c]
push eax
lea eax, [ebp - 0x15c]
push eax
call fcn.004472e3
pop ecx
pop ecx
test eax, eax
jne 0x428525
push 0x10
mov ecx, ebx
call fcn.00430b60
lea eax, [ebp - 0x15c]
cmp esi, edi
je 0x42852b
push 0x45eb14
push eax
call fcn.004459de
pop ecx
pop ecx
mov dword [ebp - 8], eax
cmp eax, edi
je 0x428347
lea ecx, [ebp - 0xc]
push ecx
push eax
call fcn.00427d6a
test al, al
je 0x428339
mov eax, dword [ebp - 0xc]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x42830e
test cl, cl
je 0x42830a
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x42830e
inc eax
inc eax
inc esi
inc esi
test cl, cl
jne 0x4282f0
xor eax, eax
jmp 0x428313
sbb eax, eax
sbb eax, 0xffffffff
mov ecx, ebx
cmp eax, edi
je 0x428330
push 0x12
xor eax, eax
call fcn.00430b60
push dword [ebp - 0xc]
call fcn.00444160
pop ecx
mov dword [ebp - 0xc], edi
jmp 0x428339
push 0x11
xor eax, eax
call fcn.00430b60
push dword [ebp - 8]
call fcn.0044615f
pop ecx
mov dword [ebp - 8], edi
jmp 0x428352
push 0x22
xor eax, eax
mov ecx, ebx
call fcn.00430b60
cmp dword [ebp - 0xc], edi
je 0x428525
xor eax, eax
mov cl, byte [ebp + eax - 0x15c]
mov byte [ebp + eax - 0x294], cl
inc eax
test cl, cl
jne 0x42835d
lea eax, [ebp - 0x15c]
push eax
push ebx
call fcn.00427a82
test al, al
je 0x428503
mov esi, dword [ebp - 0x178]
add esi, 0xffffff80
mov dword [ebp - 0x30], esi
mov byte [ebp + 0x2f], 1
cmp esi, 0x1000
jbe 0x4284b7
push edi
lea eax, [ebp - 0x40]
push eax
lea eax, [ebp - 0x15c]
push eax
sub esi, 0x1000
lea eax, [ebp - 0x1c]
mov ecx, ebx
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x1c], edi
call fcn.0042c321
test al, al
je 0x4284b7
lea eax, [esi + 0x80]
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x15c]
push eax
push ebx
call fcn.0042c0dd
test al, al
je 0x4284a7
lea eax, [ebp - 0x15c]
push 0x4611f4
push eax
call fcn.004459de
pop ecx
pop ecx
mov dword [ebp - 8], eax
test eax, eax
je 0x4284a7
xor eax, eax
push eax
push esi
lea eax, [ebp - 0x314]
push str.Range:bytes_llu__n
push eax
mov byte [ebp + 0x2f], 0
call fcn.004450ab
add esp, 0x10
push 0
lea eax, [ebp - 0x314]
push eax
mov edi, ebx
call fcn.0042aa92
mov dword [ebp - 0x18], eax
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42843a
sub eax, edi
cmp dword [ebp + 0x30], 0
mov dword [ebp - 0x34], eax
je 0x42845b
xor eax, eax
push eax
push esi
mov esi, dword [ebp + 0x30]
call fcn.004230c1
mov esi, dword [ebp - 0x30]
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x20]
push eax
mov dword [ebp - 0x40], esi
fild dword [ebp - 0x40]
push esi
test esi, esi
jge 0x428473
fadd qword [0x462388]
mov dword [ebp - 0x40], eax
fild dword [ebp - 0x40]
test eax, eax
jge 0x428483
fadd qword [0x462388]
fdivp st(1)
push ecx
lea eax, [ebp - 0x15c]
fstp dword [ebp - 0x44]
fld dword [ebp - 0x44]
fstp dword [esp]
push eax
mov eax, dword [ebp + 0x30]
push 0x20
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
call fcn.00424e96
push dword [ebp - 0x1c]
mov edi, ebx
call fcn.0042a9fc
cmp byte [ebp + 0x2f], 0
je 0x4284f4
lea eax, [ebp - 0x15c]
push 0x46120c
push eax
call fcn.004459de
mov esi, eax
xor edi, edi
pop ecx
pop ecx
mov dword [ebp - 8], esi
cmp esi, edi
je 0x42854f
mov eax, dword [ebp - 0xc]
push esi
call fcn.0042c05a
test al, al
jne 0x42853b
push esi
call fcn.0044615f
mov byte [ebp - 0x294], 0
mov dword [ebp - 8], edi
jmp 0x42853a
push 0x23
xor eax, eax
mov ecx, ebx
call fcn.00430b60
xor edi, edi
jmp 0x42853b
push 0x23
xor eax, eax
mov ecx, ebx
call fcn.00430b60
push 0x12
xor eax, eax
mov ecx, ebx
mov dword [ebp - 8], edi
mov byte [ebp - 0x294], 0
call fcn.00430b60
jmp 0x42853b
lea eax, [ebp - 0x15c]
push 0x46120c
push eax
call fcn.004459de
pop ecx
mov dword [ebp - 8], eax
pop ecx
cmp dword [ebp - 8], edi
je 0x42854f
lea eax, [ebp - 0x15c]
push eax
call fcn.0042bdce
pop ecx
jmp 0x42855a
push 0x24
xor eax, eax
mov ecx, ebx
call fcn.00430b60
mov edi, ebx
call fcn.0042461d
mov ecx, ebx
test al, al
je 0x4285b8
push 0x1a
xor eax, eax
call fcn.00430b60
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x42857a
mov byte [eax], 0
cmp dword [ebp - 8], 0
je 0x428589
push dword [ebp - 8]
call fcn.0044615f
pop ecx
lea edi, [ebp - 0x14]
mov eax, ebx
call fcn.0042abf3
lea edi, [ebp - 0x2c]
mov eax, ebx
call fcn.0042abf3
cmp dword [ebp - 0xc], 0
je 0x4285ac
push dword [ebp - 0xc]
call fcn.00444160
pop ecx
mov esi, ebx
call fcn.004244b5
jmp 0x4281b1
push 0x13
xor eax, eax
call fcn.00430b60
xor edi, edi
push edi
push edi
push edi
push edi
push str.Mozilla_5.0__Windows__U__Windows_NT_5.1__en_GB__rv:1.9.0.5__Gecko_2008120122_Firefox_3.0.5
call dword [sym.imp.WININET.dll_InternetOpenA]
mov esi, eax
mov dword [ebp - 0x38], esi
cmp esi, edi
jne 0x428613
lea esi, [ebp + 0x30]
mov dword [ebp + 0x30], edi
call fcn.0043d06d
cmp dword [ebp + 0x30], edi
je 0x428589
fldz
push edi
push edi
push ecx
fstp dword [esp]
push dword [ebp + 0x30]
xor eax, eax
push 0x11
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
call fcn.00424e96
push dword [ebp + 0x30]
call fcn.00444db8
jmp 0x428588
mov eax, dword [ebx + 0x28]
mov edi, dword [sym.imp.WININET.dll_InternetSetOptionA]
push 4
mov dword [ebp - 0x48], eax
lea eax, [ebp - 0x48]
push eax
push 6
push esi
call edi
push 4
lea eax, [ebp - 0x48]
push eax
push 2
push esi
call edi
push 4
lea eax, [ebp - 0x4c]
push eax
push 0x1f
push esi
mov dword [ebp - 0x4c], 0x3180
call edi
push 0x14
xor eax, eax
mov ecx, ebx
call fcn.00430b60
push 0
push 0x40300
push dword [ebp - 0x34]
push dword [ebp - 0x18]
push dword [ebp - 0x28]
push esi
call dword [sym.imp.WININET.dll_InternetOpenUrlA]
mov dword [ebp - 0x20], eax
lea edi, [ebp - 0x28]
mov eax, ebx
call fcn.0042abf3
and dword [ebp - 0x10], 0
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0x54], 0x400
jne 0x428764
xor edi, edi
lea esi, [ebp + 0x30]
mov dword [ebp + 0x30], edi
call fcn.0043d06d
lea eax, [ebp - 0x54]
push eax
lea eax, [ebp - 0x714]
push eax
lea eax, [ebp - 0x50]
push eax
call dword [sym.imp.WININET.dll_InternetGetLastResponseInfoA]
fldz
push edi
push edi
push ecx
fstp dword [esp]
lea eax, [ebp - 0x714]
push eax
push 0x11
push dword [ebp + 0x18]
xor eax, eax
push dword [ebp + 0x14]
push ebx
call fcn.00424e96
lea eax, [ebp - 0x714]
push eax
mov eax, dword [ebp + 0x30]
push edi
push dword [ebp - 0x50]
cdq
push edx
push eax
lea eax, [ebp - 0xb4c]
push str._s____llu_::__s
push eax
call fcn.004450ab
add esp, 0x1c
push dword [ebp + 0x30]
call fcn.00444db8
fldz
pop ecx
push edi
push edi
push ecx
fstp dword [esp]
lea eax, [ebp - 0xb4c]
push eax
push 0x11
push dword [ebp + 0x18]
xor eax, eax
push dword [ebp + 0x14]
push ebx
call fcn.00424e96
push dword [ebp - 0x38]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
lea edi, [ebp - 0x14]
mov eax, ebx
call fcn.0042abf3
lea edi, [ebp - 0x2c]
mov eax, ebx
call fcn.0042abf3
cmp dword [ebp - 0xc], 0
je 0x428745
push dword [ebp - 0xc]
call fcn.00444160
pop ecx
mov esi, ebx
call fcn.004244b5
test al, al
je 0x4281b1
push 0x28
xor eax, eax
mov ecx, ebx
call fcn.00430b60
jmp 0x4281b1
push dword [ebx + 0x130]
call fcn.0043c122
mov eax, dword [ebx + 0x150]
xor esi, esi
pop ecx
cmp eax, esi
je 0x428785
mov ecx, dword [ebx + 0x1c]
add dword [eax + 0x10], ecx
adc dword [eax + 0x14], esi
push dword [ebx + 0x130]
call fcn.0043c136
pop ecx
push 0x13
push dword [ebp - 0x20]
mov byte [ebp + 0x2f], 0
call fcn.00427560
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x18], esi
je 0x4287b1
lea edi, [ebp - 0x18]
mov eax, ebx
call fcn.0042abf3
cmp byte [ebx + 0x13], 0
mov byte [ebp - 0x21], 0
mov dword [ebp - 0x18], esi
je 0x42881f
mov ecx, dword [ebp - 0x1c]
mov eax, 0x1f4
cmp ecx, eax
ja 0x4287f6
je 0x4287f2
mov eax, ecx
sub eax, 0x12d
je 0x4287ee
sub eax, 0x66
je 0x4287ea
dec eax
je 0x4287e6
sub eax, 0xc
jne 0x42881f
push 0x2c
jmp 0x428816
push 0x2b
jmp 0x428816
push 0x2a
jmp 0x428816
push 0x29
jmp 0x428816
push 0x2d
jmp 0x428816
mov eax, ecx
sub eax, 0x1f5
je 0x428814
dec eax
je 0x428810
dec eax
je 0x42880c
dec eax
jne 0x42881f
push 0x31
jmp 0x428816
push 0x30
jmp 0x428816
push 0x2f
jmp 0x428816
push 0x2e
xor eax, eax
mov ecx, ebx
call fcn.00430b60
mov eax, dword [ebp - 0x1c]
sub eax, 0xc8
je 0x428998
sub eax, 6
je 0x428998
sub eax, 0xc6
je 0x428935
sub eax, 0xc
mov eax, dword [ebp + 0x28]
je 0x4288d9
cmp eax, esi
je 0x428854
mov byte [eax], 0
cmp dword [ebp - 8], esi
je 0x428862
push dword [ebp - 8]
call fcn.0044615f
pop ecx
lea eax, [ebp - 0x15c]
push eax
call fcn.00446a13
pop ecx
lea eax, [ebp - 0x294]
push eax
call fcn.00446a13
mov eax, dword [ebp - 0x14]
pop ecx
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x428882
sub eax, edi
add eax, 0x20
push eax
push esi
mov edi, ebx
call fcn.0042aa92
push esi
push dword [ebp - 0x1c]
mov dword [ebp + 0x28], eax
push dword [ebp - 0x14]
push str._s_llu
push eax
call fcn.004450ab
fldz
add esp, 0x14
push esi
push esi
push ecx
fstp dword [esp]
push dword [ebp + 0x28]
xor eax, eax
push 0x10
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
call fcn.00424e96
lea edi, [ebp + 0x28]
mov eax, ebx
call fcn.0042abf3
jmp 0x4291e8
cmp eax, esi
je 0x4288e0
mov byte [eax], 1
cmp dword [ebp - 8], esi
je 0x4288ee
push dword [ebp - 8]
call fcn.0044615f
pop ecx
lea eax, [ebp - 0x15c]
push eax
call fcn.00446a13
pop ecx
lea eax, [ebp - 0x294]
push eax
call fcn.00446a13
pop ecx
mov dword [ebp - 0x10], esi
cmp dword [ebp + 0x24], esi
jne 0x428915
mov eax, dword [ebp + 0x10]
mov dword [eax], esi
fldz
push esi
push esi
push ecx
fstp dword [esp]
push dword [ebp - 0x14]
xor eax, eax
push 3
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
call fcn.00424e96
jmp 0x4291e8
mov eax, dword [ebp + 0x28]
cmp eax, esi
je 0x42893f
mov byte [eax], 0
cmp dword [ebp - 8], esi
je 0x42894d
push dword [ebp - 8]
call fcn.0044615f
pop ecx
lea eax, [ebp - 0x15c]
push eax
call fcn.00446a13
pop ecx
lea eax, [ebp - 0x294]
push eax
call fcn.00446a13
fldz
pop ecx
push esi
push esi
push ecx
fstp dword [esp]
push dword [ebp - 0x14]
xor eax, eax
push 6
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
call fcn.00424e96
mov dword [ebp - 0x10], esi
cmp dword [ebp + 0x24], esi
jne 0x4291e8
mov eax, dword [ebp + 0x10]
mov dword [eax], esi
jmp 0x4291e8
push 5
push dword [ebp - 0x20]
call fcn.00427560
cmp dword [ebp - 0xc], 0
mov ecx, dword [ebp - 0x30]
lea esi, [eax + ecx]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x10], esi
jne 0x428a03
push 0x24
call fcn.004441b8
pop ecx
test eax, eax
je 0x4289df
mov ecx, dword [ebp + 0x20]
test ecx, ecx
je 0x4289d7
mov edi, eax
sub edi, ecx
mov dl, byte [ecx]
mov byte [edi + ecx], dl
inc ecx
test dl, dl
jne 0x4289cb
jmp 0x4289da
mov byte [eax], 0
mov dword [eax + 0x20], esi
jmp 0x4289e1
xor eax, eax
push dword [eax + 0x20]
fldz
mov dword [ebp - 0xc], eax
mov eax, dword [ebp + 0x30]
push 0
push ecx
fstp dword [esp]
push dword [ebp - 0x14]
push 0x1b
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
call fcn.00424e96
xor edi, edi
xor esi, esi
mov dword [ebp - 0x34], esi
cmp dword [ebp - 0x28], edi
je 0x428e27
cmp dword [ebp - 8], edi
je 0x428b33
cmp dword [ebp - 0x1c], 0xce
jne 0x428acd
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x20]
sub eax, dword [ebp - 0x178]
add eax, 0x1080
cmp dword [ebp - 0x28], eax
je 0x428b2d
push dword [ebp - 8]
call fcn.0044615f
mov esi, dword [sym.imp.WININET.dll_InternetCloseHandle]
pop ecx
push dword [ebp - 0x20]
call esi
push dword [ebp - 0x38]
call esi
lea eax, [ebp - 0x15c]
push eax
call fcn.00446a13
pop ecx
lea eax, [ebp - 0x294]
push eax
call fcn.00446a13
pop ecx
lea edi, [ebp - 0x14]
mov eax, ebx
call fcn.0042abf3
lea edi, [ebp - 0x2c]
mov eax, ebx
call fcn.0042abf3
push dword [ebp - 0xc]
call fcn.00444160
pop ecx
mov esi, ebx
call fcn.004244b5
test al, al
je 0x4281b1
push 0
push 0
push dword [ebp + 0x28]
mov ecx, ebx
push dword [ebp + 0x24]
push dword [ebp + 0x20]
push dword [ebp + 0x1c]
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push dword [ebp + 0x10]
push dword [ebp + 0xc]
push dword [ebp + 8]
call fcn.00428191
jmp 0x4292c0
cmp dword [ebp - 0x1c], 0xc8
jne 0x428b2d
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
push dword [ebp - 8]
mov dword [edi + 0x20], eax
call fcn.0044615f
lea eax, [ebp - 0x15c]
mov dword [esp], 0x46120c
push eax
call fcn.004459de
mov dword [ebp - 8], eax
lea eax, [ebp - 0x15c]
push eax
call fcn.0042bdce
add esp, 0xc
cmp dword [ebp - 8], 0
je 0x428b33
push dword [ebp - 8]
mov eax, edi
call fcn.0042c05a
test al, al
jne 0x428b2d
push dword [ebp - 8]
call fcn.0044615f
and dword [ebp - 8], 0
pop ecx
cmp dword [ebp - 8], 0
jne 0x428b67
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp - 0x10]
add eax, ecx
push eax
mov esi, ebx
call fcn.0042a886
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x428b61
cmp dword [ebp - 0xc], eax
je 0x4281b1
push dword [ebp - 0xc]
call fcn.00444160
pop ecx
jmp 0x4281b1
mov esi, dword [ebp - 0x34]
mov dword [ebp - 0x40], eax
and dword [ebp - 0x1c], 0
cmp dword [ebp - 0x28], 0
jbe 0x428fe1
mov eax, dword [ebp - 0x1c]
sub eax, esi
cmp eax, dword [ebx + 0x20]
jbe 0x428bce
mov eax, dword [ebp - 0x30]
push dword [ebp - 0x10]
add eax, esi
push eax
imul eax, eax, 0x64
mov dword [ebp + 0xc], eax
fild dword [ebp + 0xc]
test eax, eax
jge 0x428b9b
fadd qword [0x462388]
mov eax, dword [ebp - 0x10]
fild dword [ebp - 0x10]
test eax, eax
jge 0x428bab
fadd qword [0x462388]
fdivp st(1)
mov eax, dword [ebp + 0x30]
push ecx
fstp dword [ebp + 0xc]
fld dword [ebp + 0xc]
fstp dword [esp]
push dword [ebp - 0x14]
push 0x1b
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
call fcn.00424e96
mov dword [ebp - 0x1c], esi
mov eax, dword [ebp - 0x28]
sub eax, esi
mov ecx, 0x1000
cmp eax, ecx
mov dword [ebp - 0x44], eax
jle 0x428be4
mov eax, ecx
mov dword [ebp - 0x44], ecx
and dword [ebp + 8], 0
cmp dword [ebp - 8], 0
je 0x428d1f
mov edi, ebx
mov byte [ebp + 0xf], 0
call fcn.004245fd
test al, al
je 0x428c37
cmp byte [ebp + 0xf], 0
jne 0x428c12
push 0x1b
xor eax, eax
mov ecx, ebx
call fcn.00430b60
push 0xfa
mov byte [ebp + 0xf], 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, ebx
call fcn.004245fd
test al, al
jne 0x428c01
push 0x1c
xor eax, eax
mov ecx, ebx
call fcn.00430b60
push 0x15
xor eax, eax
mov ecx, ebx
call fcn.00430b60
mov edi, ebx
call fcn.0042461d
test al, al
jne 0x428da9
lea eax, [ebp + 8]
push eax
push dword [ebp - 0x44]
lea eax, [ebp - 0x1b4c]
push eax
push dword [ebp - 0x20]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
je 0x428d44
cmp byte [ebx + 0x8c], 0
je 0x428ca4
push dword [ebx + 0x84]
call fcn.0043c122
pop ecx
lea edi, [ebx + 0x88]
push dword [edi]
call fcn.0043c122
mov eax, dword [ebx + 0x80]
pop ecx
mov byte [eax], 1
push dword [edi]
call fcn.0043c136
pop ecx
push dword [ebp - 8]
lea eax, [ebp - 0x1b4c]
push dword [ebp + 8]
push 1
push eax
call fcn.00447136
push dword [ebp - 8]
mov edi, eax
call fcn.00446e17
add esp, 0x14
cmp edi, dword [ebp + 8]
mov edi, ebx
setne byte [ebp + 0xf]
call fcn.0042461d
test al, al
jne 0x428df7
cmp byte [ebp + 0xf], al
jne 0x428df7
lea edi, [ebx + 0x88]
push dword [edi]
call fcn.0043c122
cmp dword [ebx + 0x80], 0
pop ecx
je 0x428d07
push dword [ebx + 0x84]
call fcn.0043c136
pop ecx
push dword [edi]
call fcn.0043c136
cmp byte [ebx + 0x75], 0
pop ecx
je 0x428d44
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x428d44
lea ecx, [ebp + 8]
push ecx
push eax
mov eax, dword [ebp - 0x40]
add eax, esi
push eax
push dword [ebp - 0x20]
call dword [sym.imp.WININET.dll_InternetReadFile]
test eax, eax
jne 0x428d44
push 0x16
mov ecx, ebx
mov byte [ebp + 0x2f], 1
call fcn.00430b60
xor edi, edi
cmp dword [ebp + 8], edi
jbe 0x428fe1
push dword [ebx + 0x130]
call fcn.0043c122
mov eax, dword [ebx + 0x150]
pop ecx
cmp eax, edi
je 0x428d6d
mov ecx, dword [ebp + 8]
add dword [eax], ecx
adc dword [eax + 4], edi
push dword [ebx + 0x130]
call fcn.0043c136
pop ecx
mov eax, ebx
call fcn.0042f514
cmp dword [ebp + 0x30], edi
je 0x428d95
mov esi, dword [ebp + 0x30]
push 0
push dword [ebp + 8]
call fcn.004230c1
mov esi, dword [ebp - 0x34]
add esi, dword [ebp + 8]
mov dword [ebp - 0x34], esi
cmp esi, dword [ebp - 0x28]
jb 0x428b75
jmp 0x428fe1
mov esi, edi
lea eax, [ebp - 0x15c]
push eax
push dword [ebp - 8]
mov eax, dword [ebp + 0x28]
push dword [ebp - 0x38]
lea ebx, [ebp - 0x294]
push dword [ebp - 0x20]
mov ecx, esi
call fcn.004280ec
lea edi, [ebp - 0x14]
mov eax, esi
call fcn.0042abf3
lea edi, [ebp - 0x2c]
mov eax, esi
call fcn.0042abf3
cmp dword [ebp - 0xc], 0
je 0x4285ae
push dword [ebp - 0xc]
call fcn.00444160
pop ecx
jmp 0x4285ae
lea edi, [ebx + 0x88]
push dword [edi]
call fcn.0043c122
cmp dword [ebx + 0x80], 0
pop ecx
je 0x428e1a
push dword [ebx + 0x84]
call fcn.0043c136
pop ecx
push dword [edi]
call fcn.0043c136
mov esi, dword [ebp - 0x3c]
pop ecx
jmp 0x428dab
fldz
push 0x15
xor eax, eax
fstp dword [ebp + 8]
mov ecx, ebx
mov byte [ebp - 0x21], 1
mov dword [ebp + 0x2c], edi
call fcn.00430b60
mov esi, dword [ebp - 0x10]
fld dword [ebp + 8]
mov eax, dword [ebp + 0x30]
push esi
push dword [ebp - 0x30]
push ecx
fstp dword [esp]
push dword [ebp - 0x14]
push 0x1b
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
call fcn.00424e96
fld dword [ebp + 8]
fld qword [0x4623b8]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x428e85
fsub dword [ebp + 8]
fmul qword [0x462380]
fadd dword [ebp + 8]
fstp dword [ebp + 8]
jmp 0x428e87
fstp st(0)
mov ecx, ebx
cmp dword [ebp - 8], edi
je 0x428f24
push 0x15
xor eax, eax
call fcn.00430b60
lea eax, [ebp + 0xc]
push eax
push 0x1000
lea eax, [ebp - 0x1b4c]
push eax
push dword [ebp - 0x20]
call dword [sym.imp.WININET.dll_InternetReadFile]
add esi, dword [ebp + 0xc]
push dword [ebx + 0x130]
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x10], esi
call fcn.0043c122
mov eax, dword [ebx + 0x150]
pop ecx
cmp eax, edi
je 0x428edb
mov ecx, dword [ebp + 0xc]
add dword [eax], ecx
adc dword [eax + 4], edi
push dword [ebx + 0x130]
call fcn.0043c136
pop ecx
mov eax, ebx
call fcn.0042f514
mov edi, ebx
call fcn.0042461d
test al, al
jne 0x428f82
push dword [ebp - 8]
lea eax, [ebp - 0x1b4c]
push dword [ebp + 0xc]
push 1
push eax
call fcn.00447136
add esp, 0x10
cmp eax, dword [ebp + 0xc]
jne 0x428f82
push dword [ebp - 8]
call fcn.00446e17
pop ecx
jmp 0x428f6f
mov eax, dword [ebp - 0x18]
mov edi, 0x1000
add dword [ebp + 0x2c], edi
push dword [ebp + 0x2c]
call fcn.0042a7ed
mov dword [ebp - 0x18], eax
test eax, eax
je 0x4281b1
lea ecx, [ebp + 0xc]
push ecx
push edi
add eax, esi
push eax
push dword [ebp - 0x20]
call dword [sym.imp.WININET.dll_InternetReadFile]
add esi, dword [ebp + 0xc]
cmp dword [ebp + 0x30], 0
mov dword [ebp - 0x3c], eax
mov dword [ebp - 0x10], esi
je 0x428f6f
mov esi, dword [ebp + 0x30]
push 0
push dword [ebp + 0xc]
call fcn.004230c1
cmp dword [ebp - 0x3c], 0
je 0x428fcf
cmp dword [ebp + 0xc], 0
jbe 0x428fcf
xor edi, edi
jmp 0x428e3e
push dword [ebp - 8]
call fcn.0044615f
fld dword [ebp + 8]
pop ecx
push dword [ebp - 0x10]
lea eax, [ebp - 0x15c]
push dword [ebp - 0x30]
push ecx
fstp dword [esp]
push eax
mov eax, dword [ebp + 0x30]
push 8
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
call fcn.00424e96
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x428fba
mov byte [eax], 1
push dword [ebp - 0x20]
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call edi
push dword [ebp - 0x38]
call edi
jmp 0x428589
push 0x1f
xor eax, eax
mov ecx, ebx
call fcn.00430b60
mov esi, dword [ebp - 0x10]
mov byte [ebp + 0x2f], 1
cmp dword [ebp - 8], 0
mov edi, dword [ebp + 0x10]
je 0x429151
push dword [ebp - 8]
call fcn.0044615f
mov eax, dword [ebp - 0x30]
add esi, eax
pop ecx
cmp dword [ebp - 0x10], esi
je 0x42902e
mov eax, dword [ebp - 0xc]
xor esi, esi
cmp dword [eax + 0x20], esi
je 0x42902e
fldz
push esi
push esi
push ecx
fstp dword [esp]
push dword [ebp - 0x14]
xor eax, eax
push 5
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
call fcn.00424e96
mov dword [ebp - 0x10], esi
jmp 0x42919c
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x20]
neg eax
sbb eax, eax
and eax, 0x80
push eax
lea eax, [ebp - 0x10]
push eax
lea eax, [ebp - 0x15c]
push eax
lea eax, [ebp - 0x18]
mov ecx, ebx
call fcn.0042c321
test al, al
jne 0x429063
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp + 0x24], eax
jne 0x429063
mov dword [edi], eax
cmp byte [ebp - 0x21], 0
jne 0x429076
lea eax, [ebp - 0x15c]
push eax
call fcn.00446a13
pop ecx
cmp dword [ebp + 0x20], 0
je 0x429151
push 0x460bac
push dword [ebp + 0x20]
call fcn.00444510
pop ecx
pop ecx
test eax, eax
jne 0x429151
and dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
push eax
push dword [ebp - 0x10]
mov eax, ebx
push dword [ebp - 0x18]
call fcn.00427a46
mov esi, dword [ebp + 0x20]
mov eax, dword [ebp + 0xc]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x4290cf
test cl, cl
je 0x4290cb
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x4290cf
inc eax
inc eax
inc esi
inc esi
test cl, cl
jne 0x4290b1
xor eax, eax
jmp 0x4290d4
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x429144
cmp byte [ebx + 8], 0
je 0x4290f8
lea esi, [ebp - 0x18]
mov eax, ebx
call fcn.0042a784
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp + 0x24], eax
jne 0x4290fa
mov ecx, edi
mov dword [ecx], eax
jmp 0x4290fa
xor eax, eax
inc dword [ebx + 0x140]
cmp dword [ebx + 0x90], eax
jne 0x429129
push dword [ebp + 0xc]
push dword [ebp + 0x20]
push dword [ebp - 0x14]
push str.file_at__s_fails_hash_check__check:__s__file:__s_
call fcn.00445765
add eax, 0x40
push eax
call fcn.00445cb2
add esp, 0x14
jmp 0x429144
fldz
push eax
push eax
push ecx
fstp dword [esp]
push dword [ebp - 0x14]
xor eax, eax
push 4
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
call fcn.00424e96
lea edi, [ebp + 0xc]
mov eax, ebx
call fcn.0042abf3
mov edi, dword [ebp + 0x10]
cmp dword [ebp - 0x10], 0
je 0x42919c
mov esi, dword [ebp + 0x24]
test esi, esi
je 0x42919c
push 1
mov eax, esi
call fcn.0042be29
pop ecx
test al, al
je 0x42917d
push dword [ebp - 0x10]
push dword [ebp - 0x18]
push esi
push ebx
call fcn.0042c0dd
test al, al
jne 0x42919c
fldz
push 0
push 0
push ecx
fstp dword [esp]
push esi
push 8
push dword [ebp + 0x18]
xor eax, eax
push dword [ebp + 0x14]
push ebx
call fcn.00424e96
and dword [ebp - 0x10], 0
test edi, edi
je 0x4291a7
mov eax, dword [ebp - 0x18]
mov dword [edi], eax
jmp 0x4291b4
lea esi, [ebp - 0x18]
mov eax, ebx
call fcn.0042a784
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x4291de
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x4291de
cmp dword [ebp + 0x24], 0
jne 0x4291de
add ecx, eax
mov eax, dword [edi]
push ecx
mov ecx, ebx
call fcn.0042a7ed
mov dword [edi], eax
test eax, eax
je 0x4281b1
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x4291e8
mov byte [eax], 1
push dword [ebp - 0x20]
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call edi
push dword [ebp - 0x38]
call edi
mov esi, dword [ebp - 0xc]
test esi, esi
je 0x429231
mov eax, dword [esi + 0x20]
mov ecx, dword [ebp - 0x10]
cmp ecx, eax
je 0x429211
test ecx, ecx
jbe 0x429231
test eax, eax
jne 0x429231
fld dword [0x4623b0]
mov eax, dword [ebp + 0x30]
push ecx
push ecx
push ecx
fstp dword [esp]
push dword [ebp - 0x14]
push 0x1b
push dword [ebp + 0x18]
push dword [ebp + 0x14]
push ebx
call fcn.00424e96
push esi
call fcn.00444160
cmp dword [ebp - 0x10], 0
pop ecx
je 0x429268
push dword [ebx + 0x130]
call fcn.0043c122
mov eax, dword [ebx + 0x150]
pop ecx
test eax, eax
je 0x42925c
add dword [eax + 8], 1
adc dword [eax + 0xc], 0
push dword [ebx + 0x130]
call fcn.0043c136
pop ecx
lea edi, [ebp - 0x14]
mov eax, ebx
call fcn.0042abf3
lea edi, [ebp - 0x2c]
mov eax, ebx
call fcn.0042abf3
mov esi, ebx
call fcn.004244b5
test al, al
je 0x4281b1
lea eax, [ebp - 0x294]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x429294
sub eax, edx
je 0x4292ac
lea eax, [ebp - 0x294]
push eax
call fcn.00446a13
pop ecx
cmp byte [ebp + 0x2f], 0
jne 0x4292bd
push 0x1e
xor eax, eax
mov ecx, ebx
call fcn.00430b60
mov eax, dword [ebp - 0x10]
pop edi
pop esi
pop ebx
leave
ret 0x2c