Function at 0x405c80
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x42a970
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
push ebx
push esi
push edi
mov eax, dword [0x433080]
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.0040fec0
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 0x405d14
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 0x405d8a
mov ecx, dword [ebp - 0x50]
mov esi, dword [0x4342c8]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x405d62
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x405d5f
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x405d5f
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x10]
push eax
push edx
push esi
call fcn.00416170
add esp, 0xc
jmp 0x405d62
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, 0x4342b8
je 0x405dcd
add esi, 0xfffffff4
jmp 0x405db9
mov ebx, dword [0x4342c8]
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, 0x4342b8
je 0x405dcd
lea esi, [ebx - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x405dcd
push esi
call fcn.0040fbab
add esp, 4
mov eax, dword [ebp - 0x3c]
mov esi, dword [0x4342c8]
test eax, eax
je 0x405e30
mov ecx, dword [ebp - 0x38]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x405e11
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x405e0e
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x405e0e
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00416170
add esp, 0xc
jmp 0x405e11
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, 0x4342b8
jmp 0x405e51
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, 0x4342b8
mov dword [ebp - 4], 0xffffffff
je 0x405e71
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x405e71
push esi
call fcn.0040fbab
add esp, 4
mov eax, dword [ebp - 0x34]
mov esi, dword [0x4342c8]
test eax, eax
je 0x405ed4
mov ecx, dword [ebp - 0x30]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x405eb5
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x405eb2
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x405eb2
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00416170
add esp, 0xc
jmp 0x405eb5
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, 0x4342b8
jmp 0x405ef5
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, 0x4342b8
mov dword [ebp - 4], 0xffffffff
je 0x405f15
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x405f15
push esi
call fcn.0040fbab
add esp, 4
mov eax, dword [ebp - 0x48]
mov esi, dword [0x4342c8]
test eax, eax
je 0x405f78
mov ecx, dword [ebp - 0x44]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x405f59
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x405f56
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x405f56
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00416170
add esp, 0xc
jmp 0x405f59
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, 0x4342b8
jmp 0x405f96
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, 0x4342b8
mov dword [ebp - 4], 0xffffffff
je 0x405fb6
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x405fb6
push esi
call fcn.0040fbab
add esp, 4
mov eax, dword [ebp - 0x2c]
mov esi, dword [0x4342c8]
test eax, eax
je 0x406019
mov ecx, dword [ebp - 0x28]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x405ffa
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x405ff7
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x405ff7
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00416170
add esp, 0xc
jmp 0x405ffa
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, 0x4342b8
jmp 0x40603a
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, 0x4342b8
mov dword [ebp - 4], 0xffffffff
je 0x40605a
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40605a
push esi
call fcn.0040fbab
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.00404680
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, 0x4342b8
je 0x4060bb
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4060bb
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff4
push eax
call fcn.0040fbab
add esp, 4
mov eax, dword [ebp - 0x24]
mov esi, dword [0x4342c8]
test eax, eax
je 0x406120
mov ecx, dword [ebp - 0x20]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x4060ff
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x4060fc
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x4060fc
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.00416170
add esp, 0xc
jmp 0x4060ff
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, 0x4342b8
jmp 0x406143
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, 0x4342b8
mov dword [ebp - 4], 0xffffffff
je 0x406163
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406163
push esi
call fcn.0040fbab
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.00404680
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, 0x4342b8
je 0x4061c7
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4061c7
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff4
push eax
call fcn.0040fbab
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 0x4064b7
push 0x3d
push ecx
call fcn.0041dca5
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x4064b7
push 0x26
push ebx
call fcn.0041dca5
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x406383
jmp 0x406210
mov esi, dword [ebp - 0x14]
add esi, 2
push 0x26
push esi
call fcn.0041dca5
push 0x3d
push esi
mov edi, eax
call fcn.0041dca5
add esp, 0x10
test edi, edi
je 0x406244
test eax, eax
je 0x406383
cmp eax, edi
jbe 0x406240
mov dword [ebp - 0x14], edi
jmp 0x406210
jae 0x406210
jmp 0x40624c
test eax, eax
je 0x406383
mov esi, dword [ebp - 0x14]
mov edx, dword [0x4342c8]
sub esi, ebx
sar esi, 1
dec esi
mov dword [ebp - 0x10], edx
je 0x406288
mov ecx, esi
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x406288
lea eax, [esi + esi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x406288
mov edx, dword [ebp - 0x10]
push eax
lea ecx, [ebx + 2]
push ecx
push edx
call fcn.00416170
add esp, 0xc
mov dword [ebp - 4], 0xe
mov esi, dword [ebp - 0x18]
mov edi, dword [0x4342c8]
sub ebx, esi
sar ebx, 1
mov dword [ebp + 0xc], edi
je 0x4062cc
mov ecx, ebx
lea edx, [ebp + 0xc]
call fcn.004013a0
test eax, eax
je 0x4062c9
lea eax, [ebx + ebx]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x4062c9
mov edi, dword [ebp + 0xc]
push eax
push esi
push edi
call fcn.00416170
add esp, 0xc
jmp 0x4062cc
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.0040ff3a
add esp, 0xc
test eax, eax
je 0x40631c
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.0040ff3a
add esp, 0xc
test eax, eax
je 0x40631c
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp - 0x10]
push eax
push esi
lea ecx, [ebp + 0xc]
call fcn.004065a0
inc dword [esi + 8]
lea ecx, [edi - 0xc]
cmp ecx, 0x4342b8
je 0x40633e
lea esi, [edi - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40633e
push esi
call fcn.0040fbab
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10]
lea edx, [esi - 0xc]
cmp edx, 0x4342b8
je 0x40636a
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40636a
push esi
call fcn.0040fbab
add esp, 4
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x1c]
jae 0x4064b7
mov ecx, eax
jmp 0x4061e0
mov eax, dword [0x4342c8]
lea esi, [ebx + 2]
mov dword [ebp + 0xc], eax
test esi, esi
je 0x4063dc
mov ecx, esi
shr ecx, 0x10
test ecx, ecx
jne 0x4063a9
movzx eax, si
push eax
lea ecx, [ebp + 0xc]
call fcn.00401130
jmp 0x4063dc
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
test edi, edi
je 0x4063dc
mov ecx, edi
lea edx, [ebp + 0xc]
call fcn.004013a0
test eax, eax
je 0x4063dc
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x4063dc
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
call fcn.00416170
add esp, 0xc
mov dword [ebp - 4], 0x10
mov esi, dword [ebp - 0x18]
mov edi, dword [0x4342c8]
sub ebx, esi
sar ebx, 1
mov dword [ebp - 0x18], edi
je 0x406420
mov ecx, ebx
lea edx, [ebp - 0x18]
call fcn.004013a0
test eax, eax
je 0x40641d
lea eax, [ebx + ebx]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x40641d
mov edi, dword [ebp - 0x18]
push eax
push esi
push edi
call fcn.00416170
add esp, 0xc
jmp 0x406420
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.0040ff3a
add esp, 0xc
test eax, eax
je 0x406470
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.0040ff3a
add esp, 0xc
test eax, eax
je 0x406470
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp + 0xc]
push eax
push esi
lea ecx, [ebp - 0x18]
call fcn.004065a0
inc dword [esi + 8]
lea ecx, [edi - 0xc]
cmp ecx, 0x4342b8
je 0x406492
lea esi, [edi - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x406492
push esi
call fcn.0040fbab
add esp, 4
mov esi, dword [ebp + 0xc]
lea edx, [esi - 0xc]
cmp edx, 0x4342b8
je 0x4064b7
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4064b7
push esi
call fcn.0040fbab
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