Function at 0x406b70
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42c170
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
push ebx
push esi
push edi
mov eax, dword [0x435084]
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.00402040
push 0x38
lea eax, [ebp - 0x54]
push 0
push eax
call fcn.00415cf0
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 0x406c06
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 [0x4362dc]
test eax, eax
je 0x406c70
mov ecx, dword [ebp - 0x50]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x406c54
lea edx, [ebp - 0x10]
call fcn.00402830
test eax, eax
je 0x406c51
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406c51
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
push eax
push edx
push ebx
call fcn.00417950
add esp, 0xc
jmp 0x406c54
mov ebx, dword [ebp - 0x10]
lea eax, [esi + 8]
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 0
call fcn.00402040
lea eax, [ebx - 0xc]
cmp eax, 0x4362cc
jmp 0x406c8a
mov dword [ebp - 0x18], ebx
mov dword [ebp - 4], edi
lea eax, [esi + 8]
lea edi, [ebp - 0x18]
call fcn.00402040
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362cc
mov dword [ebp - 4], 0xffffffff
je 0x406caa
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406caa
push edi
call fcn.00411a76
add esp, 4
mov eax, dword [ebp - 0x3c]
mov ebx, dword [0x4362dc]
test eax, eax
je 0x406d0f
mov ecx, dword [ebp - 0x38]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x406cf2
lea edx, [ebp - 0x10]
call fcn.00402830
test eax, eax
je 0x406cef
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406cef
mov ebx, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x18]
push eax
push ebx
call fcn.00417950
add esp, 0xc
jmp 0x406cf2
mov ebx, dword [ebp - 0x10]
lea eax, [esi + 0x10]
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 2
call fcn.00402040
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362cc
jmp 0x406d2d
mov dword [ebp - 0x18], ebx
lea eax, [esi + 0x10]
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 3
call fcn.00402040
lea edx, [ebx - 0xc]
cmp edx, 0x4362cc
mov dword [ebp - 4], 0xffffffff
je 0x406d4d
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406d4d
push edi
call fcn.00411a76
add esp, 4
mov eax, dword [ebp - 0x34]
mov ebx, dword [0x4362dc]
test eax, eax
je 0x406dc9
mov ecx, dword [ebp - 0x30]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x406d95
lea edx, [ebp - 0x10]
call fcn.00402830
test eax, eax
je 0x406d92
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406d92
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
push eax
push edx
push ebx
call fcn.00417950
add esp, 0xc
jmp 0x406d95
mov ebx, dword [ebp - 0x10]
lea eax, [esi + 0x14]
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 4
call fcn.00402040
lea eax, [ebx - 0xc]
mov dword [ebp - 4], 0xffffffff
cmp eax, 0x4362cc
je 0x406e07
add ebx, 0xfffffff4
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406e07
push ebx
jmp 0x406dff
mov dword [ebp - 0x18], ebx
lea eax, [esi + 0x14]
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 5
call fcn.00402040
lea ecx, [ebx - 0xc]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0x4362cc
je 0x406e07
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406e07
push edi
call fcn.00411a76
add esp, 4
mov eax, dword [ebp - 0x48]
mov ebx, dword [0x4362dc]
test eax, eax
je 0x406e6c
mov ecx, dword [ebp - 0x44]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x406e4f
lea edx, [ebp - 0x10]
call fcn.00402830
test eax, eax
je 0x406e4c
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406e4c
mov ebx, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x18]
push eax
push ebx
call fcn.00417950
add esp, 0xc
jmp 0x406e4f
mov ebx, dword [ebp - 0x10]
lea eax, [esi + 0xc]
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 6
call fcn.00402040
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362cc
jmp 0x406e8a
mov dword [ebp - 0x18], ebx
lea eax, [esi + 0xc]
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 7
call fcn.00402040
lea edx, [ebx - 0xc]
cmp edx, 0x4362cc
mov dword [ebp - 4], 0xffffffff
je 0x406eaa
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406eaa
push edi
call fcn.00411a76
add esp, 4
mov eax, dword [ebp - 0x2c]
mov ebx, dword [0x4362dc]
test eax, eax
je 0x406f0e
mov ecx, dword [ebp - 0x28]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x406ef2
lea edx, [ebp - 0x10]
call fcn.00402830
test eax, eax
je 0x406eef
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406eef
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
push eax
push edx
push ebx
call fcn.00417950
add esp, 0xc
jmp 0x406ef2
mov ebx, dword [ebp - 0x10]
lea eax, [esi + 0x18]
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 8
call fcn.00402040
lea eax, [ebx - 0xc]
cmp eax, 0x4362cc
jmp 0x406f2c
mov dword [ebp - 0x18], ebx
lea eax, [esi + 0x18]
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 9
call fcn.00402040
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362cc
mov dword [ebp - 4], 0xffffffff
je 0x406f4c
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406f4c
push edi
call fcn.00411a76
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.00402040
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
lea ecx, [eax - 0xc]
cmp ecx, 0x4362cc
je 0x406fa7
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406fa7
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff4
push eax
call fcn.00411a76
add esp, 4
mov eax, dword [ebp - 0x24]
mov ebx, dword [0x4362dc]
test eax, eax
je 0x40700f
mov ecx, dword [ebp - 0x20]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x406fef
lea edx, [ebp - 0x10]
call fcn.00402830
test eax, eax
je 0x406fec
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x406fec
mov ebx, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x18]
push eax
push ebx
call fcn.00417950
add esp, 0xc
jmp 0x406fef
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.00402040
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362cc
jmp 0x407030
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.00402040
lea edx, [ebx - 0xc]
cmp edx, 0x4362cc
mov dword [ebp - 4], 0xffffffff
je 0x407050
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x407050
push edi
call fcn.00411a76
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.00402040
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0xc]
lea ecx, [eax - 0xc]
cmp ecx, 0x4362cc
je 0x4070ae
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4070ae
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff4
push eax
call fcn.00411a76
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 0x4073a5
lea ebx, [ebx]
mov eax, dword [ebp - 0x18]
push 0x3d
push eax
call fcn.0041c4c1
mov esi, eax
add esp, 8
test esi, esi
je 0x4073a5
push 0x26
push esi
call fcn.0041c4c1
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x407271
mov edi, edi
mov edi, dword [ebp - 0x14]
add edi, 2
push 0x26
push edi
call fcn.0041c4c1
push 0x3d
push edi
mov ebx, eax
call fcn.0041c4c1
add esp, 0x10
test ebx, ebx
je 0x407134
test eax, eax
je 0x407271
cmp eax, ebx
jbe 0x407130
mov dword [ebp - 0x14], ebx
jmp 0x407100
jae 0x407100
jmp 0x40713c
test eax, eax
je 0x407271
mov edi, dword [ebp - 0x14]
mov ecx, dword [0x4362dc]
sub edi, esi
sar edi, 1
dec edi
mov dword [ebp - 0x10], ecx
je 0x407178
mov ecx, edi
lea edx, [ebp - 0x10]
call fcn.00402830
test eax, eax
je 0x407178
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x407178
push eax
mov eax, dword [ebp - 0x10]
lea ecx, [esi + 2]
push ecx
push eax
call fcn.00417950
add esp, 0xc
mov dword [ebp - 4], 0xe
mov edi, dword [ebp - 0x18]
mov ebx, dword [0x4362dc]
sub esi, edi
sar esi, 1
mov dword [ebp + 0xc], ebx
je 0x4071bc
mov ecx, esi
lea edx, [ebp + 0xc]
call fcn.00402830
test eax, eax
je 0x4071b9
lea eax, [esi + esi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x4071b9
mov ebx, dword [ebp + 0xc]
push eax
push edi
push ebx
call fcn.00417950
add esp, 0xc
jmp 0x4071bc
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.0041a754
add esp, 0xc
test eax, eax
je 0x40720c
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [edi], eax
call fcn.0041a754
add esp, 0xc
test eax, eax
je 0x40720c
mov edx, dword [edi + 8]
mov dword [edi + 4], eax
lea eax, [ebp - 0x10]
push eax
push edi
lea ecx, [ebp + 0xc]
call fcn.00407490
inc dword [edi + 8]
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362cc
je 0x40722e
lea esi, [ebx - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40722e
push esi
call fcn.00411a76
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10]
lea edx, [esi - 0xc]
cmp edx, 0x4362cc
je 0x40725a
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40725a
push esi
call fcn.00411a76
add esp, 4
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x1c]
jb 0x4070d0
jmp 0x4073a5
mov eax, dword [0x4362dc]
lea edi, [esi + 2]
mov dword [ebp + 0xc], eax
test edi, edi
je 0x4072ca
mov ecx, edi
shr ecx, 0x10
test ecx, ecx
jne 0x407297
movzx eax, di
push eax
lea ecx, [ebp + 0xc]
call fcn.004025e0
jmp 0x4072ca
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
test ebx, ebx
je 0x4072ca
mov ecx, ebx
lea edx, [ebp + 0xc]
call fcn.00402830
test eax, eax
je 0x4072ca
lea eax, [ebx + ebx]
lea edx, [eax + 2]
cmp edx, eax
jb 0x4072ca
push eax
mov eax, dword [ebp + 0xc]
push edi
push eax
call fcn.00417950
add esp, 0xc
mov dword [ebp - 4], 0x10
mov edi, dword [ebp - 0x18]
mov ebx, dword [0x4362dc]
sub esi, edi
sar esi, 1
mov dword [ebp - 0x18], ebx
je 0x40730e
mov ecx, esi
lea edx, [ebp - 0x18]
call fcn.00402830
test eax, eax
je 0x40730b
lea eax, [esi + esi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x40730b
mov ebx, dword [ebp - 0x18]
push eax
push edi
push ebx
call fcn.00417950
add esp, 0xc
jmp 0x40730e
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.0041a754
add esp, 0xc
test eax, eax
je 0x40735e
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.0041a754
add esp, 0xc
test eax, eax
je 0x40735e
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp + 0xc]
push eax
push esi
lea ecx, [ebp - 0x18]
call fcn.00407490
inc dword [esi + 8]
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362cc
je 0x407380
lea esi, [ebx - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x407380
push esi
call fcn.00411a76
add esp, 4
mov esi, dword [ebp + 0xc]
lea edx, [esi - 0xc]
cmp edx, 0x4362cc
je 0x4073a5
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4073a5
push esi
call fcn.00411a76
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