Function at 0x4034b0
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x40e370
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
push ebx
push esi
push edi
mov eax, dword [0x413020]
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.004010c0
push 0x38
lea eax, [ebp - 0x54]
push 0
push eax
call fcn.00404360
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 0x403544
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 0x4035ba
mov ecx, dword [ebp - 0x50]
mov esi, dword [0x413e60]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x403592
lea edx, [ebp - 0x10]
call fcn.00401500
test eax, eax
je 0x40358f
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x40358f
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x10]
push eax
push edx
push esi
call fcn.0040a640
add esp, 0xc
jmp 0x403592
mov esi, dword [ebp - 0x10]
lea eax, [ebx + 8]
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 0
call fcn.004010c0
lea eax, [esi - 0xc]
mov dword [ebp - 4], 0xffffffff
cmp eax, 0x413e50
je 0x4035fd
add esi, 0xfffffff4
jmp 0x4035e9
mov ebx, dword [0x413e60]
mov dword [ebp - 0x18], ebx
mov eax, dword [ebp + 8]
add eax, 8
lea edi, [ebp - 0x18]
mov dword [ebp - 4], esi
call fcn.004010c0
lea ecx, [ebx - 0xc]
mov dword [ebp - 4], 0xffffffff
cmp ecx, 0x413e50
je 0x4035fd
lea esi, [ebx - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4035fd
push esi
call fcn.00404129
add esp, 4
mov eax, dword [ebp - 0x3c]
mov esi, dword [0x413e60]
test eax, eax
je 0x403660
mov ecx, dword [ebp - 0x38]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x403641
lea edx, [ebp - 0x10]
call fcn.00401500
test eax, eax
je 0x40363e
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x40363e
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.0040a640
add esp, 0xc
jmp 0x403641
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
add eax, 0x10
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 2
call fcn.004010c0
lea eax, [esi - 0xc]
cmp eax, 0x413e50
jmp 0x403681
mov dword [ebp - 0x18], esi
mov eax, dword [ebp + 8]
add eax, 0x10
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 3
call fcn.004010c0
lea ecx, [esi - 0xc]
cmp ecx, 0x413e50
mov dword [ebp - 4], 0xffffffff
je 0x4036a1
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4036a1
push esi
call fcn.00404129
add esp, 4
mov eax, dword [ebp - 0x34]
mov esi, dword [0x413e60]
test eax, eax
je 0x403704
mov ecx, dword [ebp - 0x30]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x4036e5
lea edx, [ebp - 0x10]
call fcn.00401500
test eax, eax
je 0x4036e2
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x4036e2
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.0040a640
add esp, 0xc
jmp 0x4036e5
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.004010c0
lea eax, [esi - 0xc]
cmp eax, 0x413e50
jmp 0x403725
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.004010c0
lea ecx, [esi - 0xc]
cmp ecx, 0x413e50
mov dword [ebp - 4], 0xffffffff
je 0x403745
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x403745
push esi
call fcn.00404129
add esp, 4
mov eax, dword [ebp - 0x48]
mov esi, dword [0x413e60]
test eax, eax
je 0x4037a8
mov ecx, dword [ebp - 0x44]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x403789
lea edx, [ebp - 0x10]
call fcn.00401500
test eax, eax
je 0x403786
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x403786
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.0040a640
add esp, 0xc
jmp 0x403789
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
add eax, 0xc
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 6
call fcn.004010c0
lea eax, [esi - 0xc]
cmp eax, 0x413e50
jmp 0x4037c6
mov dword [ebp - 0x18], esi
lea eax, [ebx + 0xc]
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 7
call fcn.004010c0
lea ecx, [esi - 0xc]
cmp ecx, 0x413e50
mov dword [ebp - 4], 0xffffffff
je 0x4037e6
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4037e6
push esi
call fcn.00404129
add esp, 4
mov eax, dword [ebp - 0x2c]
mov esi, dword [0x413e60]
test eax, eax
je 0x403849
mov ecx, dword [ebp - 0x28]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x40382a
lea edx, [ebp - 0x10]
call fcn.00401500
test eax, eax
je 0x403827
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x403827
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.0040a640
add esp, 0xc
jmp 0x40382a
mov esi, dword [ebp - 0x10]
mov eax, dword [ebp + 8]
add eax, 0x18
lea edi, [ebp - 0x10]
mov dword [ebp - 4], 8
call fcn.004010c0
lea eax, [esi - 0xc]
cmp eax, 0x413e50
jmp 0x40386a
mov dword [ebp - 0x18], esi
mov eax, dword [ebp + 8]
add eax, 0x18
lea edi, [ebp - 0x18]
mov dword [ebp - 4], 9
call fcn.004010c0
lea ecx, [esi - 0xc]
cmp ecx, 0x413e50
mov dword [ebp - 4], 0xffffffff
je 0x40388a
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40388a
push esi
call fcn.00404129
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.00401140
mov edi, eax
mov eax, dword [ebp + 8]
add eax, 0x24
mov dword [ebp - 4], 0xa
call fcn.004010c0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp - 0x18]
lea ecx, [eax - 0xc]
cmp ecx, 0x413e50
je 0x4038eb
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4038eb
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff4
push eax
call fcn.00404129
add esp, 4
mov eax, dword [ebp - 0x24]
mov esi, dword [0x413e60]
test eax, eax
je 0x403950
mov ecx, dword [ebp - 0x20]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x40392f
lea edx, [ebp - 0x10]
call fcn.00401500
test eax, eax
je 0x40392c
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x40392c
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.0040a640
add esp, 0xc
jmp 0x40392f
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.004010c0
lea eax, [esi - 0xc]
cmp eax, 0x413e50
jmp 0x403973
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.004010c0
lea ecx, [esi - 0xc]
cmp ecx, 0x413e50
mov dword [ebp - 4], 0xffffffff
je 0x403993
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x403993
push esi
call fcn.00404129
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.00401140
mov edi, eax
lea eax, [esi + 0x20]
mov dword [ebp - 4], 0xd
call fcn.004010c0
mov dword [ebp - 4], 0xffffffff
mov eax, dword [ebp + 0xc]
lea ecx, [eax - 0xc]
cmp ecx, 0x413e50
je 0x4039f7
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4039f7
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff4
push eax
call fcn.00404129
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 0x403ce7
push 0x3d
push ecx
call fcn.0040ce7c
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x403ce7
push 0x26
push ebx
call fcn.0040ce7c
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x403bb3
jmp 0x403a40
mov esi, dword [ebp - 0x14]
add esi, 2
push 0x26
push esi
call fcn.0040ce7c
push 0x3d
push esi
mov edi, eax
call fcn.0040ce7c
add esp, 0x10
test edi, edi
je 0x403a74
test eax, eax
je 0x403bb3
cmp eax, edi
jbe 0x403a70
mov dword [ebp - 0x14], edi
jmp 0x403a40
jae 0x403a40
jmp 0x403a7c
test eax, eax
je 0x403bb3
mov esi, dword [ebp - 0x14]
mov edx, dword [0x413e60]
sub esi, ebx
sar esi, 1
dec esi
mov dword [ebp - 0x10], edx
je 0x403ab8
mov ecx, esi
lea edx, [ebp - 0x10]
call fcn.00401500
test eax, eax
je 0x403ab8
lea eax, [esi + esi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x403ab8
mov edx, dword [ebp - 0x10]
push eax
lea ecx, [ebx + 2]
push ecx
push edx
call fcn.0040a640
add esp, 0xc
mov dword [ebp - 4], 0xe
mov esi, dword [ebp - 0x18]
mov edi, dword [0x413e60]
sub ebx, esi
sar ebx, 1
mov dword [ebp + 0xc], edi
je 0x403afc
mov ecx, ebx
lea edx, [ebp + 0xc]
call fcn.00401500
test eax, eax
je 0x403af9
lea eax, [ebx + ebx]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x403af9
mov edi, dword [ebp + 0xc]
push eax
push esi
push edi
call fcn.0040a640
add esp, 0xc
jmp 0x403afc
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.004043da
add esp, 0xc
test eax, eax
je 0x403b4c
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.004043da
add esp, 0xc
test eax, eax
je 0x403b4c
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp - 0x10]
push eax
push esi
lea ecx, [ebp + 0xc]
call fcn.00403dd0
inc dword [esi + 8]
lea ecx, [edi - 0xc]
cmp ecx, 0x413e50
je 0x403b6e
lea esi, [edi - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x403b6e
push esi
call fcn.00404129
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10]
lea edx, [esi - 0xc]
cmp edx, 0x413e50
je 0x403b9a
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x403b9a
push esi
call fcn.00404129
add esp, 4
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x1c]
jae 0x403ce7
mov ecx, eax
jmp 0x403a10
mov eax, dword [0x413e60]
lea esi, [ebx + 2]
mov dword [ebp + 0xc], eax
test esi, esi
je 0x403c0c
mov ecx, esi
shr ecx, 0x10
test ecx, ecx
jne 0x403bd9
movzx eax, si
push eax
lea ecx, [ebp + 0xc]
call fcn.00401240
jmp 0x403c0c
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
test edi, edi
je 0x403c0c
mov ecx, edi
lea edx, [ebp + 0xc]
call fcn.00401500
test eax, eax
je 0x403c0c
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x403c0c
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
call fcn.0040a640
add esp, 0xc
mov dword [ebp - 4], 0x10
mov esi, dword [ebp - 0x18]
mov edi, dword [0x413e60]
sub ebx, esi
sar ebx, 1
mov dword [ebp - 0x18], edi
je 0x403c50
mov ecx, ebx
lea edx, [ebp - 0x18]
call fcn.00401500
test eax, eax
je 0x403c4d
lea eax, [ebx + ebx]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x403c4d
mov edi, dword [ebp - 0x18]
push eax
push esi
push edi
call fcn.0040a640
add esp, 0xc
jmp 0x403c50
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.004043da
add esp, 0xc
test eax, eax
je 0x403ca0
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.004043da
add esp, 0xc
test eax, eax
je 0x403ca0
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp + 0xc]
push eax
push esi
lea ecx, [ebp - 0x18]
call fcn.00403dd0
inc dword [esi + 8]
lea ecx, [edi - 0xc]
cmp ecx, 0x413e50
je 0x403cc2
lea esi, [edi - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x403cc2
push esi
call fcn.00404129
add esp, 4
mov esi, dword [ebp + 0xc]
lea edx, [esi - 0xc]
cmp edx, 0x413e50
je 0x403ce7
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x403ce7
push esi
call fcn.00404129
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