Function at 0x4067b0
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42c2f0
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
push ebx
push esi
push edi
mov eax, dword [0x435080]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov edi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
lea eax, [ebx + 0x3c]
call fcn.004010b0
push 0x38
lea eax, [ebp - 0x54]
push 0
push eax
call fcn.004114f0
mov eax, dword [edi]
add esp, 0xc
mov esi, 1
lea edx, [ebp - 0x58]
push edx
mov dword [ebp - 0x58], 0x3c
mov dword [ebp - 0x50], esi
mov dword [ebp - 0x44], esi
mov dword [ebp - 0x38], esi
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], esi
mov dword [ebp - 0x20], esi
mov ecx, dword [eax - 8]
push 0
push ecx
push eax
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
jne 0x406844
mov byte [ebx + 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 [ebx + 0x34], eax
mov eax, dword [ebp - 0x54]
test eax, eax
je 0x4068ba
mov ecx, dword [ebp - 0x50]
mov esi, dword [0x4362c8]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406892
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x40688f
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x40688f
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x10]
push eax
push edx
push esi
call fcn.00417880
add esp, 0xc
jmp 0x406892
mov esi, dword [ebp - 0x10]
lea eax, [ebx + 8]
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 0
call fcn.004010b0
lea eax, [esi - 0xc]
mov dword [ebp - 4], 0xffffffff
cmp eax, 0x4362b8
je 0x4068fd
add esi, 0xfffffff4
jmp 0x4068e9
mov ebx, dword [0x4362c8]
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp + 8]
add eax, 8
lea edi, [ebp - 0x18]
mov dword [ebp - 4], esi
call fcn.004010b0
lea ecx, [ebx - 0xc]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0x4362b8
je 0x4068fd
lea esi, [ebx - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4068fd
push esi
call fcn.004111db
add esp, 4
mov eax, dword [ebp - 0x3c]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406960
mov ecx, dword [ebp - 0x38]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406941
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x40693e
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x40693e
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417880
add esp, 0xc
jmp 0x406941
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
add eax, 0x10
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 2
call fcn.004010b0
lea eax, [esi - 0xc]
cmp eax, 0x4362b8
jmp 0x406981
mov dword [ebp - 0x18], esi
mov eax, dword [ebp + 8]
add eax, 0x10
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 3
call fcn.004010b0
lea ecx, [esi - 0xc]
cmp ecx, 0x4362b8
mov dword [ebp - 4], 0xffffffff
je 0x4069a1
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4069a1
push esi
call fcn.004111db
add esp, 4
mov eax, dword [ebp - 0x34]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406a04
mov ecx, dword [ebp - 0x30]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x4069e5
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x4069e2
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x4069e2
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417880
add esp, 0xc
jmp 0x4069e5
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp + 8]
lea eax, [ebx + 0x14]
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 4
call fcn.004010b0
lea eax, [esi - 0xc]
cmp eax, 0x4362b8
jmp 0x406a25
mov dword [ebp - 0x18], esi
mov ebx, dword [ebp + 8]
lea eax, [ebx + 0x14]
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 5
call fcn.004010b0
lea ecx, [esi - 0xc]
cmp ecx, 0x4362b8
mov dword [ebp - 4], 0xffffffff
je 0x406a45
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406a45
push esi
call fcn.004111db
add esp, 4
mov eax, dword [ebp - 0x48]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406aa8
mov ecx, dword [ebp - 0x44]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406a89
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406a86
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406a86
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417880
add esp, 0xc
jmp 0x406a89
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
add eax, 0xc
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 6
call fcn.004010b0
lea eax, [esi - 0xc]
cmp eax, 0x4362b8
jmp 0x406ac6
mov dword [ebp - 0x18], esi
lea eax, [ebx + 0xc]
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 7
call fcn.004010b0
lea ecx, [esi - 0xc]
cmp ecx, 0x4362b8
mov dword [ebp - 4], 0xffffffff
je 0x406ae6
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406ae6
push esi
call fcn.004111db
add esp, 4
mov eax, dword [ebp - 0x2c]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406b49
mov ecx, dword [ebp - 0x28]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406b2a
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406b27
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406b27
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417880
add esp, 0xc
jmp 0x406b2a
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
add eax, 0x18
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 8
call fcn.004010b0
lea eax, [esi - 0xc]
cmp eax, 0x4362b8
jmp 0x406b6a
mov dword [ebp - 0x18], esi
mov eax, dword [ebp + 8]
add eax, 0x18
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 9
call fcn.004010b0
lea ecx, [esi - 0xc]
cmp ecx, 0x4362b8
mov dword [ebp - 4], 0xffffffff
je 0x406b8a
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406b8a
push esi
call fcn.004111db
add esp, 4
mov ecx, dword [ebp - 0x28]
mov edx, dword [ebp + 0xc]
add ecx, ecx
sub ecx, dword [edx]
lea eax, [ebp - 0x18]
add ecx, dword [ebp - 0x2c]
push eax
push edx
sar ecx, 1
xor edx, edx
call fcn.00404640
mov edi, eax
mov eax, dword [ebp + 8]
add eax, 0x24
mov dword [ebp - 4], 0xa
call fcn.004010b0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
lea ecx, [eax - 0xc]
cmp ecx, 0x4362b8
je 0x406beb
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406beb
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff4
push eax
call fcn.004111db
add esp, 4
mov eax, dword [ebp - 0x24]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406c50
mov ecx, dword [ebp - 0x20]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406c2f
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406c2c
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406c2c
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417880
add esp, 0xc
jmp 0x406c2f
mov esi, dword [ebp - 0x10]
mov ebx, dword [ebp + 8]
add ebx, 0x1c
lea edi, [ebp - 0x10]
mov eax, ebx
mov dword [ebp - 4], 0xb
call fcn.004010b0
lea eax, [esi - 0xc]
cmp eax, 0x4362b8
jmp 0x406c73
mov dword [ebp - 0x18], esi
mov ebx, dword [ebp + 8]
add ebx, 0x1c
lea edi, [ebp - 0x18]
mov eax, ebx
mov dword [ebp - 4], 0xc
call fcn.004010b0
lea ecx, [esi - 0xc]
cmp ecx, 0x4362b8
mov dword [ebp - 4], 0xffffffff
je 0x406c93
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406c93
push esi
call fcn.004111db
add esp, 4
mov dx, word [ebp - 0x40]
mov esi, dword [ebp + 8]
mov ecx, dword [ebp - 0x2c]
mov word [esi + 0x38], dx
mov edx, dword [ebp + 0xc]
sub ecx, dword [edx]
lea eax, [ebp + 0xc]
push eax
push edx
sar ecx, 1
xor edx, edx
call fcn.00404640
mov edi, eax
lea eax, [esi + 0x20]
mov dword [ebp - 4], 0xd
call fcn.004010b0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0xc]
lea ecx, [eax - 0xc]
cmp ecx, 0x4362b8
je 0x406cf7
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406cf7
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff4
push eax
call fcn.004111db
add esp, 4
mov eax, dword [ebx]
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 0x406fe7
push 0x3d
push ecx
call fcn.0041f2ec
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x406fe7
push 0x26
push ebx
call fcn.0041f2ec
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x406eb3
jmp 0x406d40
mov esi, dword [ebp - 0x14]
add esi, 2
push 0x26
push esi
call fcn.0041f2ec
push 0x3d
push esi
mov edi, eax
call fcn.0041f2ec
add esp, 0x10
test edi, edi
je 0x406d74
test eax, eax
je 0x406eb3
cmp eax, edi
jbe 0x406d70
mov dword [ebp - 0x14], edi
jmp 0x406d40
jae 0x406d40
jmp 0x406d7c
test eax, eax
je 0x406eb3
mov esi, dword [ebp - 0x14]
mov edx, dword [0x4362c8]
sub esi, ebx
sar esi, 1
dec esi
mov dword [ebp - 0x10], edx
je 0x406db8
mov ecx, esi
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406db8
lea eax, [esi + esi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406db8
mov edx, dword [ebp - 0x10]
push eax
lea ecx, [ebx + 2]
push ecx
push edx
call fcn.00417880
add esp, 0xc
mov dword [ebp - 4], 0xe
mov esi, dword [ebp - 0x18]
mov edi, dword [0x4362c8]
sub ebx, esi
sar ebx, 1
mov dword [ebp + 0xc], edi
je 0x406dfc
mov ecx, ebx
lea edx, [ebp + 0xc]
call fcn.004013a0
test eax, eax
je 0x406df9
lea eax, [ebx + ebx]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406df9
mov edi, dword [ebp + 0xc]
push eax
push esi
push edi
call fcn.00417880
add esp, 0xc
jmp 0x406dfc
mov edi, dword [ebp + 0xc]
mov esi, dword [ebp + 8]
mov byte [ebp - 4], 0xf
mov edx, dword [esi + 0x30]
mov eax, dword [esi + 0x28]
add esi, 0x28
push 4
inc edx
push edx
push eax
call fcn.0041156a
add esp, 0xc
test eax, eax
je 0x406e4c
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.0041156a
add esp, 0xc
test eax, eax
je 0x406e4c
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp - 0x10]
push eax
push esi
lea ecx, [ebp + 0xc]
call fcn.004070d0
inc dword [esi + 8]
lea ecx, [edi - 0xc]
cmp ecx, 0x4362b8
je 0x406e6e
lea esi, [edi - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406e6e
push esi
call fcn.004111db
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10]
lea edx, [esi - 0xc]
cmp edx, 0x4362b8
je 0x406e9a
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406e9a
push esi
call fcn.004111db
add esp, 4
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x1c]
jae 0x406fe7
mov ecx, eax
jmp 0x406d10
mov eax, dword [0x4362c8]
lea esi, [ebx + 2]
mov dword [ebp + 0xc], eax
test esi, esi
je 0x406f0c
mov ecx, esi
shr ecx, 0x10
test ecx, ecx
jne 0x406ed9
movzx eax, si
push eax
lea ecx, [ebp + 0xc]
call fcn.00401130
jmp 0x406f0c
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
test edi, edi
je 0x406f0c
mov ecx, edi
lea edx, [ebp + 0xc]
call fcn.004013a0
test eax, eax
je 0x406f0c
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406f0c
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
call fcn.00417880
add esp, 0xc
mov dword [ebp - 4], 0x10
mov esi, dword [ebp - 0x18]
mov edi, dword [0x4362c8]
sub ebx, esi
sar ebx, 1
mov dword [ebp - 0x18], edi
je 0x406f50
mov ecx, ebx
lea edx, [ebp - 0x18]
call fcn.004013a0
test eax, eax
je 0x406f4d
lea eax, [ebx + ebx]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406f4d
mov edi, dword [ebp - 0x18]
push eax
push esi
push edi
call fcn.00417880
add esp, 0xc
jmp 0x406f50
mov edi, 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.0041156a
add esp, 0xc
test eax, eax
je 0x406fa0
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.0041156a
add esp, 0xc
test eax, eax
je 0x406fa0
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp + 0xc]
push eax
push esi
lea ecx, [ebp - 0x18]
call fcn.004070d0
inc dword [esi + 8]
lea ecx, [edi - 0xc]
cmp ecx, 0x4362b8
je 0x406fc2
lea esi, [edi - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406fc2
push esi
call fcn.004111db
add esp, 4
mov esi, dword [ebp + 0xc]
lea edx, [esi - 0xc]
cmp edx, 0x4362b8
je 0x406fe7
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406fe7
push esi
call fcn.004111db
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