Function at 0x4067e0
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42c320
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.00411530
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 0x406874
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 0x4068ea
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 0x4068c2
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x4068bf
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x4068bf
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x10]
push eax
push edx
push esi
call fcn.00417890
add esp, 0xc
jmp 0x4068c2
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 0x40692d
add esi, 0xfffffff4
jmp 0x406919
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 0x40692d
lea esi, [ebx - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40692d
push esi
call fcn.0041121b
add esp, 4
mov eax, dword [ebp - 0x3c]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406990
mov ecx, dword [ebp - 0x38]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406971
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x40696e
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x40696e
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417890
add esp, 0xc
jmp 0x406971
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 0x4069b1
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 0x4069d1
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4069d1
push esi
call fcn.0041121b
add esp, 4
mov eax, dword [ebp - 0x34]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406a34
mov ecx, dword [ebp - 0x30]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406a15
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406a12
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406a12
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417890
add esp, 0xc
jmp 0x406a15
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 0x406a55
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 0x406a75
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406a75
push esi
call fcn.0041121b
add esp, 4
mov eax, dword [ebp - 0x48]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406ad8
mov ecx, dword [ebp - 0x44]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406ab9
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406ab6
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406ab6
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417890
add esp, 0xc
jmp 0x406ab9
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 0x406af6
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 0x406b16
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406b16
push esi
call fcn.0041121b
add esp, 4
mov eax, dword [ebp - 0x2c]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406b79
mov ecx, dword [ebp - 0x28]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406b5a
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406b57
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406b57
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417890
add esp, 0xc
jmp 0x406b5a
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 0x406b9a
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 0x406bba
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406bba
push esi
call fcn.0041121b
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 0x406c1b
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406c1b
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff4
push eax
call fcn.0041121b
add esp, 4
mov eax, dword [ebp - 0x24]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406c80
mov ecx, dword [ebp - 0x20]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406c5f
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406c5c
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406c5c
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417890
add esp, 0xc
jmp 0x406c5f
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 0x406ca3
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 0x406cc3
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406cc3
push esi
call fcn.0041121b
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 0x406d27
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406d27
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff4
push eax
call fcn.0041121b
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 0x407017
push 0x3d
push ecx
call fcn.0041f36c
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x407017
push 0x26
push ebx
call fcn.0041f36c
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x406ee3
jmp 0x406d70
mov esi, dword [ebp - 0x14]
add esi, 2
push 0x26
push esi
call fcn.0041f36c
push 0x3d
push esi
mov edi, eax
call fcn.0041f36c
add esp, 0x10
test edi, edi
je 0x406da4
test eax, eax
je 0x406ee3
cmp eax, edi
jbe 0x406da0
mov dword [ebp - 0x14], edi
jmp 0x406d70
jae 0x406d70
jmp 0x406dac
test eax, eax
je 0x406ee3
mov esi, dword [ebp - 0x14]
mov edx, dword [0x4362c8]
sub esi, ebx
sar esi, 1
dec esi
mov dword [ebp - 0x10], edx
je 0x406de8
mov ecx, esi
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406de8
lea eax, [esi + esi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406de8
mov edx, dword [ebp - 0x10]
push eax
lea ecx, [ebx + 2]
push ecx
push edx
call fcn.00417890
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 0x406e2c
mov ecx, ebx
lea edx, [ebp + 0xc]
call fcn.004013a0
test eax, eax
je 0x406e29
lea eax, [ebx + ebx]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406e29
mov edi, dword [ebp + 0xc]
push eax
push esi
push edi
call fcn.00417890
add esp, 0xc
jmp 0x406e2c
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.004115aa
add esp, 0xc
test eax, eax
je 0x406e7c
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.004115aa
add esp, 0xc
test eax, eax
je 0x406e7c
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp - 0x10]
push eax
push esi
lea ecx, [ebp + 0xc]
call fcn.00407100
inc dword [esi + 8]
lea ecx, [edi - 0xc]
cmp ecx, 0x4362b8
je 0x406e9e
lea esi, [edi - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406e9e
push esi
call fcn.0041121b
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10]
lea edx, [esi - 0xc]
cmp edx, 0x4362b8
je 0x406eca
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406eca
push esi
call fcn.0041121b
add esp, 4
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x1c]
jae 0x407017
mov ecx, eax
jmp 0x406d40
mov eax, dword [0x4362c8]
lea esi, [ebx + 2]
mov dword [ebp + 0xc], eax
test esi, esi
je 0x406f3c
mov ecx, esi
shr ecx, 0x10
test ecx, ecx
jne 0x406f09
movzx eax, si
push eax
lea ecx, [ebp + 0xc]
call fcn.00401130
jmp 0x406f3c
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
test edi, edi
je 0x406f3c
mov ecx, edi
lea edx, [ebp + 0xc]
call fcn.004013a0
test eax, eax
je 0x406f3c
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406f3c
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
call fcn.00417890
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 0x406f80
mov ecx, ebx
lea edx, [ebp - 0x18]
call fcn.004013a0
test eax, eax
je 0x406f7d
lea eax, [ebx + ebx]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406f7d
mov edi, dword [ebp - 0x18]
push eax
push esi
push edi
call fcn.00417890
add esp, 0xc
jmp 0x406f80
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.004115aa
add esp, 0xc
test eax, eax
je 0x406fd0
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.004115aa
add esp, 0xc
test eax, eax
je 0x406fd0
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp + 0xc]
push eax
push esi
lea ecx, [ebp - 0x18]
call fcn.00407100
inc dword [esi + 8]
lea ecx, [edi - 0xc]
cmp ecx, 0x4362b8
je 0x406ff2
lea esi, [edi - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406ff2
push esi
call fcn.0041121b
add esp, 4
mov esi, dword [ebp + 0xc]
lea edx, [esi - 0xc]
cmp edx, 0x4362b8
je 0x407017
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x407017
push esi
call fcn.0041121b
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