Function at 0x4067c0
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42c310
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.00411510
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 0x406854
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 0x4068ca
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 0x4068a2
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x40689f
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x40689f
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x10]
push eax
push edx
push esi
call fcn.00417870
add esp, 0xc
jmp 0x4068a2
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 0x40690d
add esi, 0xfffffff4
jmp 0x4068f9
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 0x40690d
lea esi, [ebx - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40690d
push esi
call fcn.004111fb
add esp, 4
mov eax, dword [ebp - 0x3c]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406970
mov ecx, dword [ebp - 0x38]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406951
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x40694e
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x40694e
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417870
add esp, 0xc
jmp 0x406951
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 0x406991
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 0x4069b1
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4069b1
push esi
call fcn.004111fb
add esp, 4
mov eax, dword [ebp - 0x34]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406a14
mov ecx, dword [ebp - 0x30]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x4069f5
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x4069f2
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x4069f2
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417870
add esp, 0xc
jmp 0x4069f5
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 0x406a35
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 0x406a55
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406a55
push esi
call fcn.004111fb
add esp, 4
mov eax, dword [ebp - 0x48]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406ab8
mov ecx, dword [ebp - 0x44]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406a99
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406a96
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406a96
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417870
add esp, 0xc
jmp 0x406a99
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 0x406ad6
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 0x406af6
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406af6
push esi
call fcn.004111fb
add esp, 4
mov eax, dword [ebp - 0x2c]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406b59
mov ecx, dword [ebp - 0x28]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406b3a
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406b37
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406b37
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417870
add esp, 0xc
jmp 0x406b3a
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 0x406b7a
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 0x406b9a
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406b9a
push esi
call fcn.004111fb
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.00404650
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 0x406bfb
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406bfb
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff4
push eax
call fcn.004111fb
add esp, 4
mov eax, dword [ebp - 0x24]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406c60
mov ecx, dword [ebp - 0x20]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406c3f
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406c3c
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406c3c
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417870
add esp, 0xc
jmp 0x406c3f
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 0x406c83
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 0x406ca3
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406ca3
push esi
call fcn.004111fb
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.00404650
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 0x406d07
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406d07
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff4
push eax
call fcn.004111fb
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 0x406ff7
push 0x3d
push ecx
call fcn.0041f2dc
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x406ff7
push 0x26
push ebx
call fcn.0041f2dc
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x406ec3
jmp 0x406d50
mov esi, dword [ebp - 0x14]
add esi, 2
push 0x26
push esi
call fcn.0041f2dc
push 0x3d
push esi
mov edi, eax
call fcn.0041f2dc
add esp, 0x10
test edi, edi
je 0x406d84
test eax, eax
je 0x406ec3
cmp eax, edi
jbe 0x406d80
mov dword [ebp - 0x14], edi
jmp 0x406d50
jae 0x406d50
jmp 0x406d8c
test eax, eax
je 0x406ec3
mov esi, dword [ebp - 0x14]
mov edx, dword [0x4362c8]
sub esi, ebx
sar esi, 1
dec esi
mov dword [ebp - 0x10], edx
je 0x406dc8
mov ecx, esi
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406dc8
lea eax, [esi + esi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406dc8
mov edx, dword [ebp - 0x10]
push eax
lea ecx, [ebx + 2]
push ecx
push edx
call fcn.00417870
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 0x406e0c
mov ecx, ebx
lea edx, [ebp + 0xc]
call fcn.004013a0
test eax, eax
je 0x406e09
lea eax, [ebx + ebx]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406e09
mov edi, dword [ebp + 0xc]
push eax
push esi
push edi
call fcn.00417870
add esp, 0xc
jmp 0x406e0c
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.0041158a
add esp, 0xc
test eax, eax
je 0x406e5c
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.0041158a
add esp, 0xc
test eax, eax
je 0x406e5c
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp - 0x10]
push eax
push esi
lea ecx, [ebp + 0xc]
call fcn.004070e0
inc dword [esi + 8]
lea ecx, [edi - 0xc]
cmp ecx, 0x4362b8
je 0x406e7e
lea esi, [edi - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406e7e
push esi
call fcn.004111fb
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10]
lea edx, [esi - 0xc]
cmp edx, 0x4362b8
je 0x406eaa
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406eaa
push esi
call fcn.004111fb
add esp, 4
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x1c]
jae 0x406ff7
mov ecx, eax
jmp 0x406d20
mov eax, dword [0x4362c8]
lea esi, [ebx + 2]
mov dword [ebp + 0xc], eax
test esi, esi
je 0x406f1c
mov ecx, esi
shr ecx, 0x10
test ecx, ecx
jne 0x406ee9
movzx eax, si
push eax
lea ecx, [ebp + 0xc]
call fcn.00401130
jmp 0x406f1c
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
test edi, edi
je 0x406f1c
mov ecx, edi
lea edx, [ebp + 0xc]
call fcn.004013a0
test eax, eax
je 0x406f1c
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406f1c
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
call fcn.00417870
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 0x406f60
mov ecx, ebx
lea edx, [ebp - 0x18]
call fcn.004013a0
test eax, eax
je 0x406f5d
lea eax, [ebx + ebx]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406f5d
mov edi, dword [ebp - 0x18]
push eax
push esi
push edi
call fcn.00417870
add esp, 0xc
jmp 0x406f60
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.0041158a
add esp, 0xc
test eax, eax
je 0x406fb0
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.0041158a
add esp, 0xc
test eax, eax
je 0x406fb0
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp + 0xc]
push eax
push esi
lea ecx, [ebp - 0x18]
call fcn.004070e0
inc dword [esi + 8]
lea ecx, [edi - 0xc]
cmp ecx, 0x4362b8
je 0x406fd2
lea esi, [edi - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406fd2
push esi
call fcn.004111fb
add esp, 4
mov esi, dword [ebp + 0xc]
lea edx, [esi - 0xc]
cmp edx, 0x4362b8
je 0x406ff7
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406ff7
push esi
call fcn.004111fb
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