Function at 0x406a30
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42b780
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.00411a80
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 0x406ac4
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 0x406b3a
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 0x406b12
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406b0f
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406b0f
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x10]
push eax
push edx
push esi
call fcn.00417d40
add esp, 0xc
jmp 0x406b12
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 0x406b7d
add esi, 0xfffffff4
jmp 0x406b69
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 0x406b7d
lea esi, [ebx - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406b7d
push esi
call fcn.0041176b
add esp, 4
mov eax, dword [ebp - 0x3c]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406be0
mov ecx, dword [ebp - 0x38]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406bc1
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406bbe
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406bbe
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417d40
add esp, 0xc
jmp 0x406bc1
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 0x406c01
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 0x406c21
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406c21
push esi
call fcn.0041176b
add esp, 4
mov eax, dword [ebp - 0x34]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406c84
mov ecx, dword [ebp - 0x30]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406c65
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406c62
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406c62
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417d40
add esp, 0xc
jmp 0x406c65
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 0x406ca5
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 0x406cc5
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406cc5
push esi
call fcn.0041176b
add esp, 4
mov eax, dword [ebp - 0x48]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406d28
mov ecx, dword [ebp - 0x44]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406d09
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406d06
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406d06
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417d40
add esp, 0xc
jmp 0x406d09
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 0x406d46
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 0x406d66
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406d66
push esi
call fcn.0041176b
add esp, 4
mov eax, dword [ebp - 0x2c]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406dc9
mov ecx, dword [ebp - 0x28]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406daa
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406da7
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406da7
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417d40
add esp, 0xc
jmp 0x406daa
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 0x406dea
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 0x406e0a
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406e0a
push esi
call fcn.0041176b
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.00404820
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 0x406e6b
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406e6b
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff4
push eax
call fcn.0041176b
add esp, 4
mov eax, dword [ebp - 0x24]
mov esi, dword [0x4362c8]
test eax, eax
je 0x406ed0
mov ecx, dword [ebp - 0x20]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x406eaf
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406eac
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406eac
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00417d40
add esp, 0xc
jmp 0x406eaf
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 0x406ef3
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 0x406f13
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406f13
push esi
call fcn.0041176b
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.00404820
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 0x406f77
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406f77
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff4
push eax
call fcn.0041176b
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 0x407267
push 0x3d
push ecx
call fcn.0041f975
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x407267
push 0x26
push ebx
call fcn.0041f975
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x407133
jmp 0x406fc0
mov esi, dword [ebp - 0x14]
add esi, 2
push 0x26
push esi
call fcn.0041f975
push 0x3d
push esi
mov edi, eax
call fcn.0041f975
add esp, 0x10
test edi, edi
je 0x406ff4
test eax, eax
je 0x407133
cmp eax, edi
jbe 0x406ff0
mov dword [ebp - 0x14], edi
jmp 0x406fc0
jae 0x406fc0
jmp 0x406ffc
test eax, eax
je 0x407133
mov esi, dword [ebp - 0x14]
mov edx, dword [0x4362c8]
sub esi, ebx
sar esi, 1
dec esi
mov dword [ebp - 0x10], edx
je 0x407038
mov ecx, esi
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x407038
lea eax, [esi + esi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x407038
mov edx, dword [ebp - 0x10]
push eax
lea ecx, [ebx + 2]
push ecx
push edx
call fcn.00417d40
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 0x40707c
mov ecx, ebx
lea edx, [ebp + 0xc]
call fcn.004013a0
test eax, eax
je 0x407079
lea eax, [ebx + ebx]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x407079
mov edi, dword [ebp + 0xc]
push eax
push esi
push edi
call fcn.00417d40
add esp, 0xc
jmp 0x40707c
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.00411afa
add esp, 0xc
test eax, eax
je 0x4070cc
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.00411afa
add esp, 0xc
test eax, eax
je 0x4070cc
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp - 0x10]
push eax
push esi
lea ecx, [ebp + 0xc]
call fcn.00407350
inc dword [esi + 8]
lea ecx, [edi - 0xc]
cmp ecx, 0x4362b8
je 0x4070ee
lea esi, [edi - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4070ee
push esi
call fcn.0041176b
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10]
lea edx, [esi - 0xc]
cmp edx, 0x4362b8
je 0x40711a
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40711a
push esi
call fcn.0041176b
add esp, 4
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x1c]
jae 0x407267
mov ecx, eax
jmp 0x406f90
mov eax, dword [0x4362c8]
lea esi, [ebx + 2]
mov dword [ebp + 0xc], eax
test esi, esi
je 0x40718c
mov ecx, esi
shr ecx, 0x10
test ecx, ecx
jne 0x407159
movzx eax, si
push eax
lea ecx, [ebp + 0xc]
call fcn.00401130
jmp 0x40718c
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
test edi, edi
je 0x40718c
mov ecx, edi
lea edx, [ebp + 0xc]
call fcn.004013a0
test eax, eax
je 0x40718c
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x40718c
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
call fcn.00417d40
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 0x4071d0
mov ecx, ebx
lea edx, [ebp - 0x18]
call fcn.004013a0
test eax, eax
je 0x4071cd
lea eax, [ebx + ebx]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x4071cd
mov edi, dword [ebp - 0x18]
push eax
push esi
push edi
call fcn.00417d40
add esp, 0xc
jmp 0x4071d0
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.00411afa
add esp, 0xc
test eax, eax
je 0x407220
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.00411afa
add esp, 0xc
test eax, eax
je 0x407220
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp + 0xc]
push eax
push esi
lea ecx, [ebp - 0x18]
call fcn.00407350
inc dword [esi + 8]
lea ecx, [edi - 0xc]
cmp ecx, 0x4362b8
je 0x407242
lea esi, [edi - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x407242
push esi
call fcn.0041176b
add esp, 4
mov esi, dword [ebp + 0xc]
lea edx, [esi - 0xc]
cmp edx, 0x4362b8
je 0x407267
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x407267
push esi
call fcn.0041176b
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