Function at 0x4237af
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.0044e410
push ebx
push esi
mov ebx, ecx
push edi
mov esi, ebx
mov dword [ebp - 0x3c], ebx
call fcn.0041fa2a
test al, al
jne 0x4237d6
xor eax, eax
jmp 0x4248de
push 0
push dword [ebp + 0xc]
mov edi, ebx
call fcn.004260b0
push 0
push dword [ebp + 8]
mov esi, eax
mov dword [ebp - 0x14], esi
call fcn.004260b0
and dword [ebp - 0xc], 0
mov ecx, eax
mov dword [ebp - 0x2c], ecx
test esi, esi
je 0x423813
cmp byte [esi], 0
mov eax, esi
je 0x423813
cmp byte [eax], 0x5c
jne 0x42380d
mov byte [eax], 0x2f
inc eax
cmp byte [eax], 0
jne 0x423805
test ecx, ecx
je 0x42382c
cmp byte [ecx], 0
mov eax, ecx
je 0x42382c
cmp byte [eax], 0x5c
jne 0x423826
mov byte [eax], 0x2f
inc eax
cmp byte [eax], 0
jne 0x42381e
mov eax, dword [ebp + 0x2c]
mov ecx, esi
call fcn.004225ed
test al, al
je 0x423847
push 0
push esi
call fcn.004260b0
mov dword [ebp - 0x28], eax
jmp 0x423886
mov eax, esi
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x42384c
sub eax, edi
add eax, 2
push eax
push dword [ebp - 0x2c]
mov edi, ebx
call fcn.004260b0
push 0
push esi
mov dword [ebp - 0x28], eax
call fcn.004260b0
push 0x2f
push dword [ebp - 0x28]
mov dword [ebp + 0x2c], eax
push ebx
call fcn.0042295b
lea edi, [ebp + 0x2c]
mov eax, ebx
call fcn.00426211
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.004231d8
mov esi, dword [ebp + 0x20]
test al, al
je 0x423b6d
lea eax, [ebp - 0x18c]
push eax
lea eax, [ebp - 0x15c]
push eax
call fcn.00442433
pop ecx
pop ecx
test eax, eax
jne 0x423b43
push 0x10
mov ecx, ebx
call fcn.0042c162
lea eax, [ebp - 0x15c]
cmp esi, edi
je 0x423b49
push 0x459b44
push eax
call fcn.00440b2e
pop ecx
pop ecx
mov dword [ebp - 8], eax
cmp eax, edi
je 0x423965
lea ecx, [ebp - 0xc]
push ecx
push eax
call fcn.00423388
test al, al
je 0x423957
mov eax, dword [ebp - 0xc]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x42392c
test cl, cl
je 0x423928
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x42392c
inc eax
inc eax
inc esi
inc esi
test cl, cl
jne 0x42390e
xor eax, eax
jmp 0x423931
sbb eax, eax
sbb eax, 0xffffffff
mov ecx, ebx
cmp eax, edi
je 0x42394e
push 0x12
xor eax, eax
call fcn.0042c162
push dword [ebp - 0xc]
call fcn.0043f1f0
pop ecx
mov dword [ebp - 0xc], edi
jmp 0x423957
push 0x11
xor eax, eax
call fcn.0042c162
push dword [ebp - 8]
call fcn.004412af
pop ecx
mov dword [ebp - 8], edi
jmp 0x423970
push 0x22
xor eax, eax
mov ecx, ebx
call fcn.0042c162
cmp dword [ebp - 0xc], edi
je 0x423b43
xor eax, eax
mov cl, byte [ebp + eax - 0x15c]
mov byte [ebp + eax - 0x294], cl
inc eax
test cl, cl
jne 0x42397b
lea eax, [ebp - 0x15c]
push eax
push ebx
call fcn.004230a0
test al, al
je 0x423b21
mov esi, dword [ebp - 0x178]
add esi, 0xffffff80
mov dword [ebp - 0x30], esi
mov byte [ebp + 0x2f], 1
cmp esi, 0x1000
jbe 0x423ad5
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.0042793f
test al, al
je 0x423ad5
lea eax, [esi + 0x80]
push eax
push dword [ebp - 0x1c]
lea eax, [ebp - 0x15c]
push eax
push ebx
call fcn.004276fb
test al, al
je 0x423ac5
lea eax, [ebp - 0x15c]
push 0x45bfec
push eax
call fcn.00440b2e
pop ecx
pop ecx
mov dword [ebp - 8], eax
test eax, eax
je 0x423ac5
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.0044013b
add esp, 0x10
push 0
lea eax, [ebp - 0x314]
push eax
mov edi, ebx
call fcn.004260b0
mov dword [ebp - 0x18], eax
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x423a58
sub eax, edi
cmp dword [ebp + 0x30], 0
mov dword [ebp - 0x34], eax
je 0x423a79
xor eax, eax
push eax
push esi
mov esi, dword [ebp + 0x30]
call fcn.0041e93a
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 0x423a91
fadd qword [0x45d178]
mov dword [ebp - 0x40], eax
fild dword [ebp - 0x40]
test eax, eax
jge 0x423aa1
fadd qword [0x45d178]
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.004205c6
push dword [ebp - 0x1c]
mov edi, ebx
call fcn.0042601a
cmp byte [ebp + 0x2f], 0
je 0x423b12
lea eax, [ebp - 0x15c]
push 0x45c004
push eax
call fcn.00440b2e
mov esi, eax
xor edi, edi
pop ecx
pop ecx
mov dword [ebp - 8], esi
cmp esi, edi
je 0x423b6d
mov eax, dword [ebp - 0xc]
push esi
call fcn.00427678
test al, al
jne 0x423b59
push esi
call fcn.004412af
mov byte [ebp - 0x294], 0
mov dword [ebp - 8], edi
jmp 0x423b58
push 0x23
xor eax, eax
mov ecx, ebx
call fcn.0042c162
xor edi, edi
jmp 0x423b59
push 0x23
xor eax, eax
mov ecx, ebx
call fcn.0042c162
push 0x12
xor eax, eax
mov ecx, ebx
mov dword [ebp - 8], edi
mov byte [ebp - 0x294], 0
call fcn.0042c162
jmp 0x423b59
lea eax, [ebp - 0x15c]
push 0x45c004
push eax
call fcn.00440b2e
pop ecx
mov dword [ebp - 8], eax
pop ecx
cmp dword [ebp - 8], edi
je 0x423b6d
lea eax, [ebp - 0x15c]
push eax
call fcn.004273ec
pop ecx
jmp 0x423b78
push 0x24
xor eax, eax
mov ecx, ebx
call fcn.0042c162
mov edi, ebx
call fcn.0041fdfe
mov ecx, ebx
test al, al
je 0x423bd6
push 0x1a
xor eax, eax
call fcn.0042c162
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x423b98
mov byte [eax], 0
cmp dword [ebp - 8], 0
je 0x423ba7
push dword [ebp - 8]
call fcn.004412af
pop ecx
lea edi, [ebp - 0x14]
mov eax, ebx
call fcn.00426211
lea edi, [ebp - 0x2c]
mov eax, ebx
call fcn.00426211
cmp dword [ebp - 0xc], 0
je 0x423bca
push dword [ebp - 0xc]
call fcn.0043f1f0
pop ecx
mov esi, ebx
call fcn.0041fcb8
jmp 0x4237cf
push 0x13
xor eax, eax
call fcn.0042c162
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 0x423c31
lea esi, [ebp + 0x30]
mov dword [ebp + 0x30], edi
call fcn.004380f2
cmp dword [ebp + 0x30], edi
je 0x423ba7
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.004205c6
push dword [ebp + 0x30]
call fcn.0043fe48
jmp 0x423ba6
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.0042c162
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.00426211
and dword [ebp - 0x10], 0
cmp dword [ebp - 0x20], 0
mov dword [ebp - 0x54], 0x400
jne 0x423d82
xor edi, edi
lea esi, [ebp + 0x30]
mov dword [ebp + 0x30], edi
call fcn.004380f2
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.004205c6
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.0044013b
add esp, 0x1c
push dword [ebp + 0x30]
call fcn.0043fe48
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.004205c6
push dword [ebp - 0x38]
call dword [sym.imp.WININET.dll_InternetCloseHandle]
lea edi, [ebp - 0x14]
mov eax, ebx
call fcn.00426211
lea edi, [ebp - 0x2c]
mov eax, ebx
call fcn.00426211
cmp dword [ebp - 0xc], 0
je 0x423d63
push dword [ebp - 0xc]
call fcn.0043f1f0
pop ecx
mov esi, ebx
call fcn.0041fcb8
test al, al
je 0x4237cf
push 0x28
xor eax, eax
mov ecx, ebx
call fcn.0042c162
jmp 0x4237cf
push dword [ebx + 0x130]
call fcn.00437216
mov eax, dword [ebx + 0x150]
xor esi, esi
pop ecx
cmp eax, esi
je 0x423da3
mov ecx, dword [ebx + 0x1c]
add dword [eax + 0x10], ecx
adc dword [eax + 0x14], esi
push dword [ebx + 0x130]
call fcn.0043722a
pop ecx
push 0x13
push dword [ebp - 0x20]
mov byte [ebp + 0x2f], 0
call fcn.00422b7e
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x18], esi
je 0x423dcf
lea edi, [ebp - 0x18]
mov eax, ebx
call fcn.00426211
cmp byte [ebx + 0x13], 0
mov byte [ebp - 0x21], 0
mov dword [ebp - 0x18], esi
je 0x423e3d
mov ecx, dword [ebp - 0x1c]
mov eax, 0x1f4
cmp ecx, eax
ja 0x423e14
je 0x423e10
mov eax, ecx
sub eax, 0x12d
je 0x423e0c
sub eax, 0x66
je 0x423e08
dec eax
je 0x423e04
sub eax, 0xc
jne 0x423e3d
push 0x2c
jmp 0x423e34
push 0x2b
jmp 0x423e34
push 0x2a
jmp 0x423e34
push 0x29
jmp 0x423e34
push 0x2d
jmp 0x423e34
mov eax, ecx
sub eax, 0x1f5
je 0x423e32
dec eax
je 0x423e2e
dec eax
je 0x423e2a
dec eax
jne 0x423e3d
push 0x31
jmp 0x423e34
push 0x30
jmp 0x423e34
push 0x2f
jmp 0x423e34
push 0x2e
xor eax, eax
mov ecx, ebx
call fcn.0042c162
mov eax, dword [ebp - 0x1c]
sub eax, 0xc8
je 0x423fb6
sub eax, 6
je 0x423fb6
sub eax, 0xc6
je 0x423f53
sub eax, 0xc
mov eax, dword [ebp + 0x28]
je 0x423ef7
cmp eax, esi
je 0x423e72
mov byte [eax], 0
cmp dword [ebp - 8], esi
je 0x423e80
push dword [ebp - 8]
call fcn.004412af
pop ecx
lea eax, [ebp - 0x15c]
push eax
call fcn.00441b63
pop ecx
lea eax, [ebp - 0x294]
push eax
call fcn.00441b63
mov eax, dword [ebp - 0x14]
pop ecx
lea edi, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x423ea0
sub eax, edi
add eax, 0x20
push eax
push esi
mov edi, ebx
call fcn.004260b0
push esi
push dword [ebp - 0x1c]
mov dword [ebp + 0x28], eax
push dword [ebp - 0x14]
push str._s_llu
push eax
call fcn.0044013b
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.004205c6
lea edi, [ebp + 0x28]
mov eax, ebx
call fcn.00426211
jmp 0x424806
cmp eax, esi
je 0x423efe
mov byte [eax], 1
cmp dword [ebp - 8], esi
je 0x423f0c
push dword [ebp - 8]
call fcn.004412af
pop ecx
lea eax, [ebp - 0x15c]
push eax
call fcn.00441b63
pop ecx
lea eax, [ebp - 0x294]
push eax
call fcn.00441b63
pop ecx
mov dword [ebp - 0x10], esi
cmp dword [ebp + 0x24], esi
jne 0x423f33
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.004205c6
jmp 0x424806
mov eax, dword [ebp + 0x28]
cmp eax, esi
je 0x423f5d
mov byte [eax], 0
cmp dword [ebp - 8], esi
je 0x423f6b
push dword [ebp - 8]
call fcn.004412af
pop ecx
lea eax, [ebp - 0x15c]
push eax
call fcn.00441b63
pop ecx
lea eax, [ebp - 0x294]
push eax
call fcn.00441b63
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.004205c6
mov dword [ebp - 0x10], esi
cmp dword [ebp + 0x24], esi
jne 0x424806
mov eax, dword [ebp + 0x10]
mov dword [eax], esi
jmp 0x424806
push 5
push dword [ebp - 0x20]
call fcn.00422b7e
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 0x424021
push 0x24
call fcn.0043f248
pop ecx
test eax, eax
je 0x423ffd
mov ecx, dword [ebp + 0x20]
test ecx, ecx
je 0x423ff5
mov edi, eax
sub edi, ecx
mov dl, byte [ecx]
mov byte [edi + ecx], dl
inc ecx
test dl, dl
jne 0x423fe9
jmp 0x423ff8
mov byte [eax], 0
mov dword [eax + 0x20], esi
jmp 0x423fff
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.004205c6
xor edi, edi
xor esi, esi
mov dword [ebp - 0x34], esi
cmp dword [ebp - 0x28], edi
je 0x424445
cmp dword [ebp - 8], edi
je 0x424151
cmp dword [ebp - 0x1c], 0xce
jne 0x4240eb
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x20]
sub eax, dword [ebp - 0x178]
add eax, 0x1080
cmp dword [ebp - 0x28], eax
je 0x42414b
push dword [ebp - 8]
call fcn.004412af
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.00441b63
pop ecx
lea eax, [ebp - 0x294]
push eax
call fcn.00441b63
pop ecx
lea edi, [ebp - 0x14]
mov eax, ebx
call fcn.00426211
lea edi, [ebp - 0x2c]
mov eax, ebx
call fcn.00426211
push dword [ebp - 0xc]
call fcn.0043f1f0
pop ecx
mov esi, ebx
call fcn.0041fcb8
test al, al
je 0x4237cf
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.004237af
jmp 0x4248de
cmp dword [ebp - 0x1c], 0xc8
jne 0x42414b
mov eax, dword [ebp - 0x10]
mov edi, dword [ebp - 0xc]
push dword [ebp - 8]
mov dword [edi + 0x20], eax
call fcn.004412af
lea eax, [ebp - 0x15c]
mov dword [esp], 0x45c004
push eax
call fcn.00440b2e
mov dword [ebp - 8], eax
lea eax, [ebp - 0x15c]
push eax
call fcn.004273ec
add esp, 0xc
cmp dword [ebp - 8], 0
je 0x424151
push dword [ebp - 8]
mov eax, edi
call fcn.00427678
test al, al
jne 0x42414b
push dword [ebp - 8]
call fcn.004412af
and dword [ebp - 8], 0
pop ecx
cmp dword [ebp - 8], 0
jne 0x424185
mov ecx, dword [ebp + 0x1c]
mov eax, dword [ebp - 0x10]
add eax, ecx
push eax
mov esi, ebx
call fcn.00425ea4
mov dword [ebp - 0x18], eax
test eax, eax
jne 0x42417f
cmp dword [ebp - 0xc], eax
je 0x4237cf
push dword [ebp - 0xc]
call fcn.0043f1f0
pop ecx
jmp 0x4237cf
mov esi, dword [ebp - 0x34]
mov dword [ebp - 0x40], eax
and dword [ebp - 0x1c], 0
cmp dword [ebp - 0x28], 0
jbe 0x4245ff
mov eax, dword [ebp - 0x1c]
sub eax, esi
cmp eax, dword [ebx + 0x20]
jbe 0x4241ec
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 0x4241b9
fadd qword [0x45d178]
mov eax, dword [ebp - 0x10]
fild dword [ebp - 0x10]
test eax, eax
jge 0x4241c9
fadd qword [0x45d178]
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.004205c6
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 0x424202
mov eax, ecx
mov dword [ebp - 0x44], ecx
and dword [ebp + 8], 0
cmp dword [ebp - 8], 0
je 0x42433d
mov edi, ebx
mov byte [ebp + 0xf], 0
call fcn.0041fdde
test al, al
je 0x424255
cmp byte [ebp + 0xf], 0
jne 0x424230
push 0x1b
xor eax, eax
mov ecx, ebx
call fcn.0042c162
push 0xfa
mov byte [ebp + 0xf], 1
call dword [sym.imp.KERNEL32.dll_Sleep]
mov edi, ebx
call fcn.0041fdde
test al, al
jne 0x42421f
push 0x1c
xor eax, eax
mov ecx, ebx
call fcn.0042c162
push 0x15
xor eax, eax
mov ecx, ebx
call fcn.0042c162
mov edi, ebx
call fcn.0041fdfe
test al, al
jne 0x4243c7
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 0x424362
cmp byte [ebx + 0x8c], 0
je 0x4242c2
push dword [ebx + 0x84]
call fcn.00437216
pop ecx
lea edi, [ebx + 0x88]
push dword [edi]
call fcn.00437216
mov eax, dword [ebx + 0x80]
pop ecx
mov byte [eax], 1
push dword [edi]
call fcn.0043722a
pop ecx
push dword [ebp - 8]
lea eax, [ebp - 0x1b4c]
push dword [ebp + 8]
push 1
push eax
call fcn.00442286
push dword [ebp - 8]
mov edi, eax
call fcn.00441f67
add esp, 0x14
cmp edi, dword [ebp + 8]
mov edi, ebx
setne byte [ebp + 0xf]
call fcn.0041fdfe
test al, al
jne 0x424415
cmp byte [ebp + 0xf], al
jne 0x424415
lea edi, [ebx + 0x88]
push dword [edi]
call fcn.00437216
cmp dword [ebx + 0x80], 0
pop ecx
je 0x424325
push dword [ebx + 0x84]
call fcn.0043722a
pop ecx
push dword [edi]
call fcn.0043722a
cmp byte [ebx + 0x75], 0
pop ecx
je 0x424362
push 0x32
call dword [sym.imp.KERNEL32.dll_Sleep]
jmp 0x424362
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 0x424362
push 0x16
mov ecx, ebx
mov byte [ebp + 0x2f], 1
call fcn.0042c162
xor edi, edi
cmp dword [ebp + 8], edi
jbe 0x4245ff
push dword [ebx + 0x130]
call fcn.00437216
mov eax, dword [ebx + 0x150]
pop ecx
cmp eax, edi
je 0x42438b
mov ecx, dword [ebp + 8]
add dword [eax], ecx
adc dword [eax + 4], edi
push dword [ebx + 0x130]
call fcn.0043722a
pop ecx
mov eax, ebx
call fcn.0042ab0d
cmp dword [ebp + 0x30], edi
je 0x4243b3
mov esi, dword [ebp + 0x30]
push 0
push dword [ebp + 8]
call fcn.0041e93a
mov esi, dword [ebp - 0x34]
add esi, dword [ebp + 8]
mov dword [ebp - 0x34], esi
cmp esi, dword [ebp - 0x28]
jb 0x424193
jmp 0x4245ff
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.0042370a
lea edi, [ebp - 0x14]
mov eax, esi
call fcn.00426211
lea edi, [ebp - 0x2c]
mov eax, esi
call fcn.00426211
cmp dword [ebp - 0xc], 0
je 0x423bcc
push dword [ebp - 0xc]
call fcn.0043f1f0
pop ecx
jmp 0x423bcc
lea edi, [ebx + 0x88]
push dword [edi]
call fcn.00437216
cmp dword [ebx + 0x80], 0
pop ecx
je 0x424438
push dword [ebx + 0x84]
call fcn.0043722a
pop ecx
push dword [edi]
call fcn.0043722a
mov esi, dword [ebp - 0x3c]
pop ecx
jmp 0x4243c9
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.0042c162
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.004205c6
fld dword [ebp + 8]
fld qword [0x45d1a8]
fcom st(1)
fnstsw ax
fstp st(1)
test ah, 0x41
jne 0x4244a3
fsub dword [ebp + 8]
fmul qword [0x45d170]
fadd dword [ebp + 8]
fstp dword [ebp + 8]
jmp 0x4244a5
fstp st(0)
mov ecx, ebx
cmp dword [ebp - 8], edi
je 0x424542
push 0x15
xor eax, eax
call fcn.0042c162
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.00437216
mov eax, dword [ebx + 0x150]
pop ecx
cmp eax, edi
je 0x4244f9
mov ecx, dword [ebp + 0xc]
add dword [eax], ecx
adc dword [eax + 4], edi
push dword [ebx + 0x130]
call fcn.0043722a
pop ecx
mov eax, ebx
call fcn.0042ab0d
mov edi, ebx
call fcn.0041fdfe
test al, al
jne 0x4245a0
push dword [ebp - 8]
lea eax, [ebp - 0x1b4c]
push dword [ebp + 0xc]
push 1
push eax
call fcn.00442286
add esp, 0x10
cmp eax, dword [ebp + 0xc]
jne 0x4245a0
push dword [ebp - 8]
call fcn.00441f67
pop ecx
jmp 0x42458d
mov eax, dword [ebp - 0x18]
mov edi, 0x1000
add dword [ebp + 0x2c], edi
push dword [ebp + 0x2c]
call fcn.00425e0b
mov dword [ebp - 0x18], eax
test eax, eax
je 0x4237cf
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 0x42458d
mov esi, dword [ebp + 0x30]
push 0
push dword [ebp + 0xc]
call fcn.0041e93a
cmp dword [ebp - 0x3c], 0
je 0x4245ed
cmp dword [ebp + 0xc], 0
jbe 0x4245ed
xor edi, edi
jmp 0x42445c
push dword [ebp - 8]
call fcn.004412af
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.004205c6
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x4245d8
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 0x423ba7
push 0x1f
xor eax, eax
mov ecx, ebx
call fcn.0042c162
mov esi, dword [ebp - 0x10]
mov byte [ebp + 0x2f], 1
cmp dword [ebp - 8], 0
mov edi, dword [ebp + 0x10]
je 0x42476f
push dword [ebp - 8]
call fcn.004412af
mov eax, dword [ebp - 0x30]
add esi, eax
pop ecx
cmp dword [ebp - 0x10], esi
je 0x42464c
mov eax, dword [ebp - 0xc]
xor esi, esi
cmp dword [eax + 0x20], esi
je 0x42464c
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.004205c6
mov dword [ebp - 0x10], esi
jmp 0x4247ba
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.0042793f
test al, al
jne 0x424681
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp + 0x24], eax
jne 0x424681
mov dword [edi], eax
cmp byte [ebp - 0x21], 0
jne 0x424694
lea eax, [ebp - 0x15c]
push eax
call fcn.00441b63
pop ecx
cmp dword [ebp + 0x20], 0
je 0x42476f
push 0x45bb4c
push dword [ebp + 0x20]
call fcn.0043f5a0
pop ecx
pop ecx
test eax, eax
jne 0x42476f
and dword [ebp + 0xc], eax
lea eax, [ebp + 0xc]
push eax
push dword [ebp - 0x10]
mov eax, ebx
push dword [ebp - 0x18]
call fcn.00423064
mov esi, dword [ebp + 0x20]
mov eax, dword [ebp + 0xc]
mov cl, byte [eax]
cmp cl, byte [esi]
jne 0x4246ed
test cl, cl
je 0x4246e9
mov cl, byte [eax + 1]
cmp cl, byte [esi + 1]
jne 0x4246ed
inc eax
inc eax
inc esi
inc esi
test cl, cl
jne 0x4246cf
xor eax, eax
jmp 0x4246f2
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x424762
cmp byte [ebx + 8], 0
je 0x424716
lea esi, [ebp - 0x18]
mov eax, ebx
call fcn.00425da2
xor eax, eax
mov dword [ebp - 0x10], eax
cmp dword [ebp + 0x24], eax
jne 0x424718
mov ecx, edi
mov dword [ecx], eax
jmp 0x424718
xor eax, eax
inc dword [ebx + 0x140]
cmp dword [ebx + 0x90], eax
jne 0x424747
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.004408b5
add eax, 0x40
push eax
call fcn.00440e02
add esp, 0x14
jmp 0x424762
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.004205c6
lea edi, [ebp + 0xc]
mov eax, ebx
call fcn.00426211
mov edi, dword [ebp + 0x10]
cmp dword [ebp - 0x10], 0
je 0x4247ba
mov esi, dword [ebp + 0x24]
test esi, esi
je 0x4247ba
push 1
mov eax, esi
call fcn.00427447
pop ecx
test al, al
je 0x42479b
push dword [ebp - 0x10]
push dword [ebp - 0x18]
push esi
push ebx
call fcn.004276fb
test al, al
jne 0x4247ba
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.004205c6
and dword [ebp - 0x10], 0
test edi, edi
je 0x4247c5
mov eax, dword [ebp - 0x18]
mov dword [edi], eax
jmp 0x4247d2
lea esi, [ebp - 0x18]
mov eax, ebx
call fcn.00425da2
mov edi, dword [ebp + 0x10]
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x4247fc
mov ecx, dword [ebp - 0x10]
test ecx, ecx
je 0x4247fc
cmp dword [ebp + 0x24], 0
jne 0x4247fc
add ecx, eax
mov eax, dword [edi]
push ecx
mov ecx, ebx
call fcn.00425e0b
mov dword [edi], eax
test eax, eax
je 0x4237cf
mov eax, dword [ebp + 0x28]
test eax, eax
je 0x424806
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 0x42484f
mov eax, dword [esi + 0x20]
mov ecx, dword [ebp - 0x10]
cmp ecx, eax
je 0x42482f
test ecx, ecx
jbe 0x42484f
test eax, eax
jne 0x42484f
fld dword [0x45d1a0]
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.004205c6
push esi
call fcn.0043f1f0
cmp dword [ebp - 0x10], 0
pop ecx
je 0x424886
push dword [ebx + 0x130]
call fcn.00437216
mov eax, dword [ebx + 0x150]
pop ecx
test eax, eax
je 0x42487a
add dword [eax + 8], 1
adc dword [eax + 0xc], 0
push dword [ebx + 0x130]
call fcn.0043722a
pop ecx
lea edi, [ebp - 0x14]
mov eax, ebx
call fcn.00426211
lea edi, [ebp - 0x2c]
mov eax, ebx
call fcn.00426211
mov esi, ebx
call fcn.0041fcb8
test al, al
je 0x4237cf
lea eax, [ebp - 0x294]
lea edx, [eax + 1]
mov cl, byte [eax]
inc eax
test cl, cl
jne 0x4248b2
sub eax, edx
je 0x4248ca
lea eax, [ebp - 0x294]
push eax
call fcn.00441b63
pop ecx
cmp byte [ebp + 0x2f], 0
jne 0x4248db
push 0x1e
xor eax, eax
mov ecx, ebx
call fcn.0042c162
mov eax, dword [ebp - 0x10]
pop edi
pop esi
pop ebx
leave
ret 0x2c