Function at 0x4232e0
Capabilities:
Get file size
Parse url

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x48d2f3
mov eax, dword fs:[0]
push eax
sub esp, 0xa4
mov eax, dword [0x4c4074]
xor eax, ebp
mov dword [ebp - 0x10], eax
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, ecx
mov eax, dword [ebp + 8]
lea ecx, [edi + 0x20]
mov esi, dword [ebp + 0xc]
push eax
call fcn.004276b0
mov edx, dword [esi]
lea ecx, [edi + 0x18]
mov dword [ebp - 0x80], ecx
or esi, 0xffffffff
mov ecx, dword [ecx]
sub ecx, 0x10
lea eax, [edx - 0x10]
mov dword [ebp - 0x6c], ecx
mov dword [ebp - 0x74], eax
cmp eax, ecx
je 0x423390
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x78], eax
jl 0x423384
mov eax, dword [edx - 0x10]
cmp eax, dword [ecx]
jne 0x423384
mov ecx, dword [ebp - 0x74]
call fcn.004025a0
mov dword [ebp - 0x74], eax
mov ecx, esi
mov eax, dword [ebp - 0x78]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x423379
mov eax, dword [ebp - 0x6c]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
mov ecx, esi
call edx
or esi, 0xffffffff
mov eax, dword [ebp - 0x74]
add eax, 0x10
mov dword [edi + 0x18], eax
jmp 0x423390
push dword [edx - 0xc]
lea ecx, [edi + 0x18]
push edx
call fcn.00407350
mov edx, dword [edi + 0x18]
mov ecx, dword [edi + 0x1c]
sub ecx, 0x10
mov dword [ebp - 0x6c], ecx
lea eax, [edx - 0x10]
mov dword [ebp - 0x74], eax
cmp eax, ecx
je 0x4233fe
cmp dword [ecx + 0xc], 0
lea eax, [ecx + 0xc]
mov dword [ebp - 0x78], eax
jl 0x4233ee
mov eax, dword [edx - 0x10]
cmp eax, dword [ecx]
jne 0x4233ee
mov ecx, dword [ebp - 0x74]
call fcn.004025a0
mov dword [ebp - 0x74], eax
mov ecx, esi
mov eax, dword [ebp - 0x78]
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x4233e1
mov eax, dword [ebp - 0x6c]
push eax
mov esi, dword [eax]
mov ecx, dword [esi]
mov edx, dword [ecx + 4]
mov ecx, esi
call edx
mov eax, dword [ebp - 0x74]
lea esi, [edi + 0x1c]
add eax, 0x10
mov dword [esi], eax
jmp 0x423401
push dword [edx - 0xc]
lea esi, [edi + 0x1c]
push edx
mov ecx, esi
call fcn.00407350
jmp 0x423401
lea esi, [edi + 0x1c]
push 5
push str..part
mov ecx, esi
call fcn.004023a0
mov dword [edi + 4], 0
lea edx, [edi + 0x20]
mov dword [edi + 8], 0
mov byte [edi + 0x88], 1
mov eax, dword [edx + 4]
mov dword [ebp - 0x7c], 0
test eax, eax
je 0x423524
xor ecx, ecx
mov dword [ebp - 0x78], ecx
test eax, eax
jle 0x4234ea
mov esi, dword [ebp - 0x84]
nop dword [eax]
test ecx, ecx
js 0x423d74
cmp ecx, eax
jge 0x423d74
mov eax, dword [edx]
xorps xmm0, xmm0
lea edx, [ebp - 0x4c]
movlpd qword [ebp - 0x48], xmm0
push edx
push 0
push 0
push dword [eax + ecx*4]
movlpd qword [ebp - 0x40], xmm0
movlpd qword [ebp - 0x38], xmm0
movlpd qword [ebp - 0x30], xmm0
movlpd qword [ebp - 0x28], xmm0
movlpd qword [ebp - 0x20], xmm0
movlpd qword [ebp - 0x18], xmm0
mov dword [ebp - 0x4c], 0x3c
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
jne 0x4234b5
call dword [sym.imp.KERNEL32.dll_GetLastError]
mov dword [ebp - 0x74], eax
test eax, eax
je 0x4234b8
mov esi, eax
jmp 0x423529
mov esi, dword [ebp - 0x40]
cmp esi, 5
jne 0x4234c6
mov byte [edi + 0x88], 0
jmp 0x4234d5
cmp esi, 3
je 0x4234d5
cmp esi, 4
je 0x4234d5
cmp esi, 1
jne 0x423524
mov ecx, dword [ebp - 0x78]
lea edx, [edi + 0x20]
mov eax, dword [edx + 4]
inc ecx
mov dword [ebp - 0x78], ecx
cmp ecx, eax
jl 0x423450
call fcn.00420c00
mov al, byte [eax + 0x1c]
test al, al
je 0x4236c4
call fcn.00420c00
test byte [eax + 0x20], 8
je 0x4236c4
call fcn.00420c00
mov esi, eax
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x423d56
jmp 0x42361d
mov esi, 0x2ee6
call fcn.00420c00
mov al, byte [eax + 0x1c]
test al, al
je 0x423609
call fcn.00420c00
test byte [eax + 0x20], 8
je 0x423609
call fcn.00420c00
mov dword [ebp - 0x74], eax
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x423d60
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x70], eax
mov dword [ebp - 4], 2
lea ecx, [ebp - 0x70]
push 0x11
push str.CheckURL___failed
call fcn.004023a0
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x423d6a
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x7c], eax
mov byte [ebp - 4], 5
lea ecx, [ebp - 0x7c]
push 0
push 0x4a85e8
call fcn.004023a0
push ecx
lea eax, [ebp - 0x70]
push eax
push ecx
mov ecx, dword [ebp - 0x74]
lea eax, [ebp - 0x7c]
push eax
call fcn.00420d60
mov byte [ebp - 4], 2
or eax, 0xffffffff
mov edx, dword [ebp - 0x7c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4235e2
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
or eax, 0xffffffff
mov ecx, dword [ebp - 0x70]
add ecx, 0xfffffff0
mov dword [ebp - 0x74], ecx
lock xadd dword [ecx + 0xc], eax
dec eax
test eax, eax
jg 0x423609
mov ecx, dword [ecx]
push dword [ebp - 0x74]
mov edx, dword [ecx]
call dword [edx + 4]
push 0
push esi
push 0
lea ecx, [edi + 0xc]
call fcn.00427be0
mov eax, esi
jmp 0x423d39
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x6c], eax
mov dword [ebp - 4], 0xc
lea ecx, [ebp - 0x6c]
push 0x2c
push str.Entering_AsyncDownloadThread::DownloadProc__
call fcn.004023a0
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x423d80
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x70], eax
mov byte [ebp - 4], 0xf
lea ecx, [ebp - 0x70]
push 0
push 0x4a85e8
call fcn.004023a0
push ecx
lea eax, [ebp - 0x6c]
push eax
push ecx
lea eax, [ebp - 0x70]
mov ecx, esi
push eax
call fcn.00420d60
mov byte [ebp - 4], 0xc
or esi, 0xffffffff
mov edx, dword [ebp - 0x70]
mov eax, esi
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4236a1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov eax, esi
mov edx, dword [ebp - 0x6c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4236c7
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x4236c7
or esi, 0xffffffff
lea eax, [ebp - 0x7c]
mov ecx, edi
push eax
call fcn.00424df0
mov dword [ebp - 0x74], eax
test eax, eax
je 0x4237b9
call fcn.00420c00
cmp byte [eax + 0x1c], 0
je 0x4237b1
call fcn.00420c00
test byte [eax + 0x20], 8
je 0x4237b1
call fcn.00420c00
mov edi, eax
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x423d8a
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x7c], eax
mov dword [ebp - 4], 0x16
lea ecx, [ebp - 0x7c]
push 0x1b
push str.InitInetConnection___failed
call fcn.004023a0
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x423d94
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x6c], eax
mov byte [ebp - 4], 0x19
lea ecx, [ebp - 0x6c]
push 0
push 0x4a85e8
call fcn.004023a0
push ecx
lea eax, [ebp - 0x7c]
push eax
push ecx
lea eax, [ebp - 0x6c]
mov ecx, edi
push eax
call fcn.00420d60
mov byte [ebp - 4], 0x16
mov eax, esi
mov edx, dword [ebp - 0x6c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423792
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 4], 0xffffffff
mov edx, dword [ebp - 0x7c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x4237b1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov eax, dword [ebp - 0x74]
jmp 0x423d39
mov eax, dword [ebp - 0x7c]
mov dword [ebp - 0xa0], 0x4aaaa0
mov dword [ebp - 0x9c], eax
mov dword [ebp - 4], 0x1e
lea ecx, [edi + 0x7c]
cmp dword [ecx], 0
jbe 0x4237e7
push 4
push ecx
push 2
push eax
call dword [sym.imp.WININET.dll_InternetSetOptionW]
mov edx, dword [edi + 0x18]
mov ecx, dword [edx - 0xc]
cmp ecx, 2
jb 0x423cee
test ecx, ecx
js 0x423d9e
cmp word [edx], 0x5c
jne 0x423814
cmp ecx, 1
jl 0x423da8
cmp word [edx + 2], 0x5c
je 0x423828
cmp ecx, 1
jl 0x423db2
cmp word [edx + 2], 0x3a
jne 0x423cee
cmp byte [edi + 0x40], 0
mov dword [ebp - 0x78], 0
je 0x4238b4
push 0
push 0x80
push 3
push 0
push 3
push SysReAllocString
push dword [edi + 0x1c]
call dword [sym.imp.KERNEL32.dll_CreateFileW]
mov dword [ebp - 0x6c], eax
mov dword [ebp - 0x88], 0x4a85d0
mov dword [ebp - 0x84], eax
mov byte [ebp - 4], 0x1f
cmp eax, 0xffffffff
jne 0x42387d
mov byte [ebp - 4], 0x1e
mov dword [ebp - 0x88], 0x4a85d0
push eax
jmp 0x4238a4
push 0
push eax
call dword [sym.imp.KERNEL32.dll_GetFileSize]
cmp eax, 0xffffffff
je 0x42388e
mov dword [ebp - 0x78], eax
mov byte [ebp - 4], 0x1e
mov eax, dword [ebp - 0x6c]
mov dword [ebp - 0x88], 0x4a85d0
test eax, eax
je 0x4238b4
push eax
call dword [sym.imp.KERNEL32.dll_CloseHandle]
mov dword [ebp - 0x84], 0
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x6c], 0
mov dword [ebp - 0x84], eax
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x423dbc
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x8c], eax
mov byte [ebp - 4], 0x22
lea eax, [ebp - 0x90]
push eax
lea eax, [ebp - 0x6c]
mov ecx, edi
push eax
lea eax, [ebp - 0x78]
push eax
push dword [ebp - 0x7c]
call fcn.00425100
mov dword [ebp - 0x70], eax
lea eax, [edi + 0xc]
mov ecx, eax
mov dword [ebp - 0x74], eax
call fcn.00427d80
test al, al
je 0x4239fe
call fcn.00420c00
mov al, byte [eax + 0x1c]
test al, al
je 0x4239ec
call fcn.00420c00
test byte [eax + 0x20], 8
je 0x4239ec
call fcn.00420c00
mov edi, eax
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x423dc6
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x70], eax
mov byte [ebp - 4], 0x25
lea ecx, [ebp - 0x70]
push 0x15
push str.Download_was_canceled
call fcn.004023a0
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x423dd0
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x6c], eax
mov byte [ebp - 4], 0x28
lea ecx, [ebp - 0x6c]
push 0
push 0x4a85e8
call fcn.004023a0
push ecx
lea eax, [ebp - 0x70]
push eax
push ecx
lea eax, [ebp - 0x6c]
mov ecx, edi
push eax
call fcn.00420d60
mov byte [ebp - 4], 0x25
mov eax, esi
mov edx, dword [ebp - 0x6c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4239ce
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x22
mov eax, esi
mov edx, dword [ebp - 0x70]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x4239ec
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [ebp - 0x70], 0xe0000008
jmp 0x423cbd
cmp dword [ebp - 0x70], 0
je 0x423b29
call fcn.00420c00
mov al, byte [eax + 0x1c]
test al, al
je 0x423ad9
call fcn.00420c00
test byte [eax + 0x20], 8
je 0x423ad9
call fcn.00420c00
mov edi, eax
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x423dda
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x78], eax
mov byte [ebp - 4], 0x31
lea ecx, [ebp - 0x78]
push 0x10
push str.Connect___failed
call fcn.004023a0
call fcn.00403d50
mov ecx, eax
test ecx, ecx
je 0x423de4
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
call eax
add eax, 0x10
mov dword [ebp - 0x6c], eax
mov byte [ebp - 4], 0x34
lea ecx, [ebp - 0x6c]
push 0
push 0x4a85e8
call fcn.004023a0
push ecx
lea eax, [ebp - 0x78]
push eax
push ecx
lea eax, [ebp - 0x6c]
mov ecx, edi
push eax
call fcn.00420d60
mov byte [ebp - 4], 0x31
mov eax, esi
mov edx, dword [ebp - 0x6c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423abb
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov byte [ebp - 4], 0x22
mov eax, esi
mov edx, dword [ebp - 0x78]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423ad9
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [ebp - 0x70]
cmp edi, 0xe0000013
je 0x423b1e
mov edx, dword [ebp - 0x80]
lea ecx, [ebp - 0x80]
call fcn.0040dd30
mov byte [ebp - 4], 0x39
mov ecx, dword [ebp - 0x74]
push 0
push edi
push dword [eax]
call fcn.00427be0
mov byte [ebp - 4], 0x22
mov eax, esi
mov edx, dword [ebp - 0x80]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423b1e
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
jmp 0x423cbd
mov eax, dword [edi + 8]
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x98], 0x4aaaa0
mov dword [ebp - 0x94], eax
mov byte [ebp - 4], 0x3d
lea ecx, [ebp - 0xb0]
push dword [edi + 0x70]
push dword [edi + 0x68]
push dword [edi + 4]
call fcn.00421d20
mov byte [ebp - 4], 0x3e
mov ecx, dword [edi + 0x84]
mov eax, dword [ebp - 0x6c]
test ecx, ecx
je 0x423bbd
test eax, eax
je 0x423bbd
cmp ecx, eax
je 0x423bbd
mov edx, dword [ebp - 0x80]
lea ecx, [ebp - 0x80]
call fcn.0040dd30
mov byte [ebp - 4], 0x3f
mov ecx, dword [ebp - 0x74]
push 0
push 0xe0000023
push dword [eax]
call fcn.00427be0
mov byte [ebp - 4], 0x3e
mov eax, esi
mov edx, dword [ebp - 0x80]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], eax
dec eax
test eax, eax
jg 0x423bb1
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
mov dword [ebp - 0x70], 0xe0000023
jmp 0x423c7e
cmp dword [ebp - 0x90], 1
jne 0x423c66
mov eax, dword [edi + 0xc]
xorps xmm0, xmm0
mov cl, byte [edi + 0x80]
mov dword [ebp - 0x60], eax
mov dword [ebp - 0x38], eax
xor al, al
cmp byte [edi + 0x62], 0
mov byte [ebp - 0x34], cl
mov ecx, 1
movzx eax, al
cmovne eax, ecx
movsd qword [ebp - 0x58], xmm0
movups xmm0, xmmword [edi + 0x42]
mov byte [ebp - 0x22], al
lea ecx, [ebp - 0x68]
lea eax, [edi + 0x18]
mov dword [ebp - 0x68], 0x4a8c0c
push eax
movups xmmword [ebp - 0x32], xmm0
lea eax, [ebp - 0x8c]
mov word [ebp - 0x64], 0x101
xorps xmm0, xmm0
mov dword [ebp - 0x50], 1
push eax
mov word [ebp - 0x4c], 1
mov byte [ebp - 0x44], 0
mov dword [ebp - 0x40], 0x4a8c0c
mov word [ebp - 0x3c], 0x101
movups xmmword [ebp - 0x20], xmm0
mov dword [ebp - 0x48], 1
mov byte [ebp - 0x4a], 1
call fcn.00401dc0
mov dword [ebp - 0x70], eax
test eax, eax
jne 0x423c7e
cmp byte [edi + 0x62], al
je 0x423c7e
movups xmm0, xmmword [ebp - 0x20]
movups xmmword [edi + 0x52], xmm0
jmp 0x423c7e
push dword [ebp - 0x78]
mov ecx, edi
push eax
lea eax, [ebp - 0xb0]
push eax
push dword [ebp - 0x7c]
call fcn.00423df0
mov dword [ebp - 0x70], eax
mov byte [ebp - 4], 0x3d
lea ecx, [ebp - 0xb0]
call fcn.00421d90
mov byte [ebp - 4], 0x22
mov edi, dword [ebp - 0x84]
push 0
push edi
mov dword [ebp - 0x98], 0x4aaaa0
call dword [sym.imp.WININET.dll_InternetSetStatusCallbackW]
push edi
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
call edi
mov dword [ebp - 0x94], 0
mov byte [ebp - 4], 0x1e
lea eax, [ebp - 0x8c]
mov dword [ebp - 0x84], eax
mov byte [ebp - 4], 0x1e
mov edx, dword [ebp - 0x8c]
add edx, 0xfffffff0
lock xadd dword [edx + 0xc], esi
dec esi
test esi, esi
jg 0x423d0c
mov ecx, dword [edx]
push edx
mov eax, dword [ecx]
call dword [eax + 4]
jmp 0x423d0c
push 0
push 0xe0000005
lea ecx, [edi + 0xc]
push 0
call fcn.00427be0
mov edi, dword [sym.imp.WININET.dll_InternetCloseHandle]
mov dword [ebp - 0x70], 0xe0000005
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x7c]
push 0
push esi
mov dword [ebp - 0xa0], 0x4aaaa0
call dword [sym.imp.WININET.dll_InternetSetStatusCallbackW]
push esi
call edi
mov eax, dword [ebp - 0x70]
mov dword [ebp - 0x9c], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.0046e38e
mov esp, ebp
pop ebp
ret 8
push 0x80004005
call fcn.004024c0
push 0x80004005
call fcn.004024c0
push 0x80004005
call fcn.004024c0
push 1
push 0xc000008c
call fcn.004086a0
push 0x80004005
call fcn.004024c0
push 0x80004005
call fcn.004024c0
push 0x80004005
call fcn.004024c0
push 0x80070057
call fcn.004024c0
push 0x80070057
call fcn.004024c0
push 0x80070057
call fcn.004024c0
push 0x80004005
call fcn.004024c0
push 0x80004005
call fcn.004024c0
push 0x80004005
call fcn.004024c0
push 0x80004005
call fcn.004024c0
push 0x80004005
call fcn.004024c0
int3