Function at 0x406b60
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42c190
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
push ebx
push esi
push edi
mov eax, dword [0x435090]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov ebx, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
lea eax, [esi + 0x3c]
mov edi, ebx
call fcn.004019a0
push 0x38
lea eax, [ebp - 0x54]
push 0
push eax
call fcn.00411db0
mov eax, dword [ebx]
add esp, 0xc
mov edi, 1
lea edx, [ebp - 0x58]
push edx
mov dword [ebp - 0x58], 0x3c
mov dword [ebp - 0x50], edi
mov dword [ebp - 0x44], edi
mov dword [ebp - 0x38], edi
mov dword [ebp - 0x30], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x20], edi
mov ecx, dword [eax - 8]
push 0
push ecx
push eax
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
jne 0x406bf6
mov byte [esi + 4], al
xor al, al
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
mov eax, dword [ebp - 0x4c]
mov dword [esi + 0x34], eax
mov eax, dword [ebp - 0x54]
mov ebx, dword [0x4362b4]
test eax, eax
je 0x406c60
mov ecx, dword [ebp - 0x50]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x406c44
lea edx, [ebp - 0x10]
call fcn.00402190
test eax, eax
je 0x406c41
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406c41
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
push eax
push edx
push ebx
call fcn.00417fb0
add esp, 0xc
jmp 0x406c44
mov ebx, dword [ebp - 0x10]
lea eax, [esi + 8]
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 0
call fcn.004019a0
lea eax, [ebx - 0xc]
cmp eax, 0x4362a4
jmp 0x406c7a
mov dword [ebp - 0x18], ebx
mov dword [ebp - 4], edi
lea eax, [esi + 8]
lea edi, [ebp - 0x18]
call fcn.004019a0
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362a4
mov dword [ebp - 4], 0xffffffff
je 0x406c9a
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406c9a
push edi
call fcn.004115de
add esp, 4
mov eax, dword [ebp - 0x3c]
mov ebx, dword [0x4362b4]
test eax, eax
je 0x406cff
mov ecx, dword [ebp - 0x38]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x406ce2
lea edx, [ebp - 0x10]
call fcn.00402190
test eax, eax
je 0x406cdf
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406cdf
mov ebx, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x18]
push eax
push ebx
call fcn.00417fb0
add esp, 0xc
jmp 0x406ce2
mov ebx, dword [ebp - 0x10]
lea eax, [esi + 0x10]
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 2
call fcn.004019a0
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362a4
jmp 0x406d1d
mov dword [ebp - 0x18], ebx
lea eax, [esi + 0x10]
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 3
call fcn.004019a0
lea edx, [ebx - 0xc]
cmp edx, 0x4362a4
mov dword [ebp - 4], 0xffffffff
je 0x406d3d
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406d3d
push edi
call fcn.004115de
add esp, 4
mov eax, dword [ebp - 0x34]
mov ebx, dword [0x4362b4]
test eax, eax
je 0x406db9
mov ecx, dword [ebp - 0x30]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x406d85
lea edx, [ebp - 0x10]
call fcn.00402190
test eax, eax
je 0x406d82
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406d82
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
push eax
push edx
push ebx
call fcn.00417fb0
add esp, 0xc
jmp 0x406d85
mov ebx, dword [ebp - 0x10]
lea eax, [esi + 0x14]
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 4
call fcn.004019a0
lea eax, [ebx - 0xc]
mov dword [ebp - 4], 0xffffffff
cmp eax, 0x4362a4
je 0x406df7
add ebx, 0xfffffff4
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406df7
push ebx
jmp 0x406def
mov dword [ebp - 0x18], ebx
lea eax, [esi + 0x14]
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 5
call fcn.004019a0
lea ecx, [ebx - 0xc]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0x4362a4
je 0x406df7
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406df7
push edi
call fcn.004115de
add esp, 4
mov eax, dword [ebp - 0x48]
mov ebx, dword [0x4362b4]
test eax, eax
je 0x406e5c
mov ecx, dword [ebp - 0x44]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x406e3f
lea edx, [ebp - 0x10]
call fcn.00402190
test eax, eax
je 0x406e3c
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406e3c
mov ebx, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x18]
push eax
push ebx
call fcn.00417fb0
add esp, 0xc
jmp 0x406e3f
mov ebx, dword [ebp - 0x10]
lea eax, [esi + 0xc]
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 6
call fcn.004019a0
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362a4
jmp 0x406e7a
mov dword [ebp - 0x18], ebx
lea eax, [esi + 0xc]
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 7
call fcn.004019a0
lea edx, [ebx - 0xc]
cmp edx, 0x4362a4
mov dword [ebp - 4], 0xffffffff
je 0x406e9a
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406e9a
push edi
call fcn.004115de
add esp, 4
mov eax, dword [ebp - 0x2c]
mov ebx, dword [0x4362b4]
test eax, eax
je 0x406efe
mov ecx, dword [ebp - 0x28]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x406ee2
lea edx, [ebp - 0x10]
call fcn.00402190
test eax, eax
je 0x406edf
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406edf
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
push eax
push edx
push ebx
call fcn.00417fb0
add esp, 0xc
jmp 0x406ee2
mov ebx, dword [ebp - 0x10]
lea eax, [esi + 0x18]
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 8
call fcn.004019a0
lea eax, [ebx - 0xc]
cmp eax, 0x4362a4
jmp 0x406f1c
mov dword [ebp - 0x18], ebx
lea eax, [esi + 0x18]
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 9
call fcn.004019a0
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362a4
mov dword [ebp - 4], 0xffffffff
je 0x406f3c
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406f3c
push edi
call fcn.004115de
add esp, 4
mov ecx, dword [ebp - 0x28]
mov ebx, dword [ebp + 0xc]
add ecx, ecx
sub ecx, dword [ebx]
lea edx, [ebp - 0x18]
add ecx, dword [ebp - 0x2c]
push edx
sar ecx, 1
call fcn.00405560
mov edi, eax
lea eax, [esi + 0x24]
mov dword [ebp - 4], 0xa
call fcn.004019a0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
lea ecx, [eax - 0xc]
cmp ecx, 0x4362a4
je 0x406f97
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406f97
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff4
push eax
call fcn.004115de
add esp, 4
mov eax, dword [ebp - 0x24]
mov ebx, dword [0x4362b4]
test eax, eax
je 0x406fff
mov ecx, dword [ebp - 0x20]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x406fdf
lea edx, [ebp - 0x10]
call fcn.00402190
test eax, eax
je 0x406fdc
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406fdc
mov ebx, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x18]
push eax
push ebx
call fcn.00417fb0
add esp, 0xc
jmp 0x406fdf
mov ebx, dword [ebp - 0x10]
lea eax, [esi + 0x1c]
mov dword [ebp - 4], 0xb
lea edi, [ebp - 0x10]
mov dword [ebp - 0x18], eax
call fcn.004019a0
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362a4
jmp 0x407020
mov dword [ebp - 0x14], ebx
lea eax, [esi + 0x1c]
mov dword [ebp - 4], 0xc
lea edi, [ebp - 0x14]
mov dword [ebp - 0x18], eax
call fcn.004019a0
lea edx, [ebx - 0xc]
cmp edx, 0x4362a4
mov dword [ebp - 4], 0xffffffff
je 0x407040
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x407040
push edi
call fcn.004115de
add esp, 4
mov ax, word [ebp - 0x40]
mov ebx, dword [ebp + 0xc]
mov ecx, dword [ebp - 0x2c]
mov word [esi + 0x38], ax
sub ecx, dword [ebx]
lea edx, [ebp + 0xc]
sar ecx, 1
push edx
call fcn.00405560
mov edi, eax
lea eax, [esi + 0x20]
mov dword [ebp - 4], 0xd
call fcn.004019a0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0xc]
lea ecx, [eax - 0xc]
cmp ecx, 0x4362a4
je 0x40709e
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40709e
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff4
push eax
call fcn.004115de
add esp, 4
mov edx, dword [ebp - 0x18]
mov eax, dword [edx]
mov edx, dword [eax - 8]
lea ecx, [eax + 2]
lea eax, [eax + edx*2]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x1c], eax
cmp ecx, eax
jae 0x407395
lea ebx, [ebx]
mov eax, dword [ebp - 0x18]
push 0x3d
push eax
call fcn.0041c4e8
mov esi, eax
add esp, 8
test esi, esi
je 0x407395
push 0x26
push esi
call fcn.0041c4e8
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x407261
mov edi, edi
mov edi, dword [ebp - 0x14]
add edi, 2
push 0x26
push edi
call fcn.0041c4e8
push 0x3d
push edi
mov ebx, eax
call fcn.0041c4e8
add esp, 0x10
test ebx, ebx
je 0x407124
test eax, eax
je 0x407261
cmp eax, ebx
jbe 0x407120
mov dword [ebp - 0x14], ebx
jmp 0x4070f0
jae 0x4070f0
jmp 0x40712c
test eax, eax
je 0x407261
mov edi, dword [ebp - 0x14]
mov ecx, dword [0x4362b4]
sub edi, esi
sar edi, 1
dec edi
mov dword [ebp - 0x10], ecx
je 0x407168
mov ecx, edi
lea edx, [ebp - 0x10]
call fcn.00402190
test eax, eax
je 0x407168
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x407168
push eax
mov eax, dword [ebp - 0x10]
lea ecx, [esi + 2]
push ecx
push eax
call fcn.00417fb0
add esp, 0xc
mov dword [ebp - 4], 0xe
mov edi, dword [ebp - 0x18]
mov ebx, dword [0x4362b4]
sub esi, edi
sar esi, 1
mov dword [ebp + 0xc], ebx
je 0x4071ac
mov ecx, esi
lea edx, [ebp + 0xc]
call fcn.00402190
test eax, eax
je 0x4071a9
lea eax, [esi + esi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x4071a9
mov ebx, dword [ebp + 0xc]
push eax
push edi
push ebx
call fcn.00417fb0
add esp, 0xc
jmp 0x4071ac
mov ebx, dword [ebp + 0xc]
mov edi, dword [ebp + 8]
mov byte [ebp - 4], 0xf
mov edx, dword [edi + 0x30]
mov eax, dword [edi + 0x28]
add edi, 0x28
push 4
inc edx
push edx
push eax
call fcn.00411e2a
add esp, 0xc
test eax, eax
je 0x4071fc
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [edi], eax
call fcn.00411e2a
add esp, 0xc
test eax, eax
je 0x4071fc
mov edx, dword [edi + 8]
mov dword [edi + 4], eax
lea eax, [ebp - 0x10]
push eax
push edi
lea ecx, [ebp + 0xc]
call fcn.00407480
inc dword [edi + 8]
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362a4
je 0x40721e
lea esi, [ebx - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40721e
push esi
call fcn.004115de
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10]
lea edx, [esi - 0xc]
cmp edx, 0x4362a4
je 0x40724a
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40724a
push esi
call fcn.004115de
add esp, 4
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x1c]
jb 0x4070c0
jmp 0x407395
mov eax, dword [0x4362b4]
lea edi, [esi + 2]
mov dword [ebp + 0xc], eax
test edi, edi
je 0x4072ba
mov ecx, edi
shr ecx, 0x10
test ecx, ecx
jne 0x407287
movzx eax, di
push eax
lea ecx, [ebp + 0xc]
call fcn.00401f40
jmp 0x4072ba
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
test ebx, ebx
je 0x4072ba
mov ecx, ebx
lea edx, [ebp + 0xc]
call fcn.00402190
test eax, eax
je 0x4072ba
lea eax, [ebx + ebx]
lea edx, [eax + 2]
cmp edx, eax
jb 0x4072ba
push eax
mov eax, dword [ebp + 0xc]
push edi
push eax
call fcn.00417fb0
add esp, 0xc
mov dword [ebp - 4], 0x10
mov edi, dword [ebp - 0x18]
mov ebx, dword [0x4362b4]
sub esi, edi
sar esi, 1
mov dword [ebp - 0x18], ebx
je 0x4072fe
mov ecx, esi
lea edx, [ebp - 0x18]
call fcn.00402190
test eax, eax
je 0x4072fb
lea eax, [esi + esi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x4072fb
mov ebx, dword [ebp - 0x18]
push eax
push edi
push ebx
call fcn.00417fb0
add esp, 0xc
jmp 0x4072fe
mov ebx, dword [ebp - 0x18]
mov esi, dword [ebp + 8]
mov byte [ebp - 4], 0x11
mov edx, dword [esi + 0x30]
mov eax, dword [esi + 0x28]
add esi, 0x28
push 4
inc edx
push edx
push eax
call fcn.00411e2a
add esp, 0xc
test eax, eax
je 0x40734e
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.00411e2a
add esp, 0xc
test eax, eax
je 0x40734e
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp + 0xc]
push eax
push esi
lea ecx, [ebp - 0x18]
call fcn.00407480
inc dword [esi + 8]
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362a4
je 0x407370
lea esi, [ebx - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x407370
push esi
call fcn.004115de
add esp, 4
mov esi, dword [ebp + 0xc]
lea edx, [esi - 0xc]
cmp edx, 0x4362a4
je 0x407395
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x407395
push esi
call fcn.004115de
add esp, 4
mov eax, dword [ebp + 8]
mov byte [eax + 4], 1
mov al, 1
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8