Function at 0x406fd0
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42c250
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.00415d50
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 0x407066
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 0x4070d0
mov ecx, dword [ebp - 0x50]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x4070b4
lea edx, [ebp - 0x10]
call fcn.00402830
test eax, eax
je 0x4070b1
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x4070b1
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
push eax
push edx
push ebx
call fcn.004179b0
add esp, 0xc
jmp 0x4070b4
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 0x4070ea
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 0x40710a
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40710a
push edi
call fcn.00411ad6
add esp, 4
mov eax, dword [ebp - 0x3c]
mov ebx, dword [0x4362dc]
test eax, eax
je 0x40716f
mov ecx, dword [ebp - 0x38]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x407152
lea edx, [ebp - 0x10]
call fcn.00402830
test eax, eax
je 0x40714f
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x40714f
mov ebx, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x18]
push eax
push ebx
call fcn.004179b0
add esp, 0xc
jmp 0x407152
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 0x40718d
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 0x4071ad
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4071ad
push edi
call fcn.00411ad6
add esp, 4
mov eax, dword [ebp - 0x34]
mov ebx, dword [0x4362dc]
test eax, eax
je 0x407229
mov ecx, dword [ebp - 0x30]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x4071f5
lea edx, [ebp - 0x10]
call fcn.00402830
test eax, eax
je 0x4071f2
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x4071f2
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
push eax
push edx
push ebx
call fcn.004179b0
add esp, 0xc
jmp 0x4071f5
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 0x407267
add ebx, 0xfffffff4
push ebx
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x407267
push ebx
jmp 0x40725f
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 0x407267
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x407267
push edi
call fcn.00411ad6
add esp, 4
mov eax, dword [ebp - 0x48]
mov ebx, dword [0x4362dc]
test eax, eax
je 0x4072cc
mov ecx, dword [ebp - 0x44]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x4072af
lea edx, [ebp - 0x10]
call fcn.00402830
test eax, eax
je 0x4072ac
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x4072ac
mov ebx, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x18]
push eax
push ebx
call fcn.004179b0
add esp, 0xc
jmp 0x4072af
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 0x4072ea
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 0x40730a
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40730a
push edi
call fcn.00411ad6
add esp, 4
mov eax, dword [ebp - 0x2c]
mov ebx, dword [0x4362dc]
test eax, eax
je 0x40736e
mov ecx, dword [ebp - 0x28]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x407352
lea edx, [ebp - 0x10]
call fcn.00402830
test eax, eax
je 0x40734f
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x40734f
mov edx, dword [ebp - 0x18]
mov ebx, dword [ebp - 0x10]
push eax
push edx
push ebx
call fcn.004179b0
add esp, 0xc
jmp 0x407352
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 0x40738c
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 0x4073ac
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4073ac
push edi
call fcn.00411ad6
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.004059c0
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 0x407407
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x407407
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff4
push eax
call fcn.00411ad6
add esp, 4
mov eax, dword [ebp - 0x24]
mov ebx, dword [0x4362dc]
test eax, eax
je 0x40746f
mov ecx, dword [ebp - 0x20]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], ebx
test ecx, ecx
je 0x40744f
lea edx, [ebp - 0x10]
call fcn.00402830
test eax, eax
je 0x40744c
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x40744c
mov ebx, dword [ebp - 0x10]
push eax
mov eax, dword [ebp - 0x18]
push eax
push ebx
call fcn.004179b0
add esp, 0xc
jmp 0x40744f
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 0x407490
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 0x4074b0
lea edi, [ebx - 0xc]
push edi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4074b0
push edi
call fcn.00411ad6
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.004059c0
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 0x40750e
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40750e
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff4
push eax
call fcn.00411ad6
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 0x407805
lea ebx, [ebx]
mov eax, dword [ebp - 0x18]
push 0x3d
push eax
call fcn.0041c521
mov esi, eax
add esp, 8
test esi, esi
je 0x407805
push 0x26
push esi
call fcn.0041c521
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x4076d1
mov edi, edi
mov edi, dword [ebp - 0x14]
add edi, 2
push 0x26
push edi
call fcn.0041c521
push 0x3d
push edi
mov ebx, eax
call fcn.0041c521
add esp, 0x10
test ebx, ebx
je 0x407594
test eax, eax
je 0x4076d1
cmp eax, ebx
jbe 0x407590
mov dword [ebp - 0x14], ebx
jmp 0x407560
jae 0x407560
jmp 0x40759c
test eax, eax
je 0x4076d1
mov edi, dword [ebp - 0x14]
mov ecx, dword [0x4362dc]
sub edi, esi
sar edi, 1
dec edi
mov dword [ebp - 0x10], ecx
je 0x4075d8
mov ecx, edi
lea edx, [ebp - 0x10]
call fcn.00402830
test eax, eax
je 0x4075d8
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x4075d8
push eax
mov eax, dword [ebp - 0x10]
lea ecx, [esi + 2]
push ecx
push eax
call fcn.004179b0
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 0x40761c
mov ecx, esi
lea edx, [ebp + 0xc]
call fcn.00402830
test eax, eax
je 0x407619
lea eax, [esi + esi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x407619
mov ebx, dword [ebp + 0xc]
push eax
push edi
push ebx
call fcn.004179b0
add esp, 0xc
jmp 0x40761c
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.0041a7b4
add esp, 0xc
test eax, eax
je 0x40766c
mov ecx, dword [edi + 8]
mov edx, dword [edi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [edi], eax
call fcn.0041a7b4
add esp, 0xc
test eax, eax
je 0x40766c
mov edx, dword [edi + 8]
mov dword [edi + 4], eax
lea eax, [ebp - 0x10]
push eax
push edi
lea ecx, [ebp + 0xc]
call fcn.004078f0
inc dword [edi + 8]
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362cc
je 0x40768e
lea esi, [ebx - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40768e
push esi
call fcn.00411ad6
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10]
lea edx, [esi - 0xc]
cmp edx, 0x4362cc
je 0x4076ba
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4076ba
push esi
call fcn.00411ad6
add esp, 4
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x1c]
jb 0x407530
jmp 0x407805
mov eax, dword [0x4362dc]
lea edi, [esi + 2]
mov dword [ebp + 0xc], eax
test edi, edi
je 0x40772a
mov ecx, edi
shr ecx, 0x10
test ecx, ecx
jne 0x4076f7
movzx eax, di
push eax
lea ecx, [ebp + 0xc]
call fcn.004025e0
jmp 0x40772a
push edi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebx, eax
test ebx, ebx
je 0x40772a
mov ecx, ebx
lea edx, [ebp + 0xc]
call fcn.00402830
test eax, eax
je 0x40772a
lea eax, [ebx + ebx]
lea edx, [eax + 2]
cmp edx, eax
jb 0x40772a
push eax
mov eax, dword [ebp + 0xc]
push edi
push eax
call fcn.004179b0
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 0x40776e
mov ecx, esi
lea edx, [ebp - 0x18]
call fcn.00402830
test eax, eax
je 0x40776b
lea eax, [esi + esi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x40776b
mov ebx, dword [ebp - 0x18]
push eax
push edi
push ebx
call fcn.004179b0
add esp, 0xc
jmp 0x40776e
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.0041a7b4
add esp, 0xc
test eax, eax
je 0x4077be
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.0041a7b4
add esp, 0xc
test eax, eax
je 0x4077be
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp + 0xc]
push eax
push esi
lea ecx, [ebp - 0x18]
call fcn.004078f0
inc dword [esi + 8]
lea ecx, [ebx - 0xc]
cmp ecx, 0x4362cc
je 0x4077e0
lea esi, [ebx - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4077e0
push esi
call fcn.00411ad6
add esp, 4
mov esi, dword [ebp + 0xc]
lea edx, [esi - 0xc]
cmp edx, 0x4362cc
je 0x407805
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x407805
push esi
call fcn.00411ad6
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