Function at 0x405140
Capabilities:
Parse url

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4282c0
mov eax, dword fs:[0]
push eax
sub esp, 0x4c
push ebx
push esi
push edi
mov eax, dword [0x430080]
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.0040edd0
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 0x4051d4
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 0x40524a
mov ecx, dword [ebp - 0x50]
mov esi, dword [0x4312c8]
mov edi, ecx
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x405222
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x40521f
lea eax, [edi + edi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x40521f
mov edx, dword [ebp - 0x18]
mov esi, dword [ebp - 0x10]
push eax
push edx
push esi
call fcn.004150e0
add esp, 0xc
jmp 0x405222
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, 0x4312b8
je 0x40528d
add esi, 0xfffffff4
jmp 0x405279
mov ebx, dword [0x4312c8]
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, 0x4312b8
je 0x40528d
lea esi, [ebx - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40528d
push esi
call fcn.0040eabb
add esp, 4
mov eax, dword [ebp - 0x3c]
mov esi, dword [0x4312c8]
test eax, eax
je 0x4052f0
mov ecx, dword [ebp - 0x38]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x4052d1
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x4052ce
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x4052ce
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.004150e0
add esp, 0xc
jmp 0x4052d1
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, 0x4312b8
jmp 0x405311
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, 0x4312b8
mov dword [ebp - 4], 0xffffffff
je 0x405331
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x405331
push esi
call fcn.0040eabb
add esp, 4
mov eax, dword [ebp - 0x34]
mov esi, dword [0x4312c8]
test eax, eax
je 0x405394
mov ecx, dword [ebp - 0x30]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x405375
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x405372
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x405372
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.004150e0
add esp, 0xc
jmp 0x405375
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, 0x4312b8
jmp 0x4053b5
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, 0x4312b8
mov dword [ebp - 4], 0xffffffff
je 0x4053d5
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4053d5
push esi
call fcn.0040eabb
add esp, 4
mov eax, dword [ebp - 0x48]
mov esi, dword [0x4312c8]
test eax, eax
je 0x405438
mov ecx, dword [ebp - 0x44]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x405419
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x405416
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x405416
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.004150e0
add esp, 0xc
jmp 0x405419
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, 0x4312b8
jmp 0x405456
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, 0x4312b8
mov dword [ebp - 4], 0xffffffff
je 0x405476
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x405476
push esi
call fcn.0040eabb
add esp, 4
mov eax, dword [ebp - 0x2c]
mov esi, dword [0x4312c8]
test eax, eax
je 0x4054d9
mov ecx, dword [ebp - 0x28]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x4054ba
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x4054b7
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x4054b7
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.004150e0
add esp, 0xc
jmp 0x4054ba
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, 0x4312b8
jmp 0x4054fa
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, 0x4312b8
mov dword [ebp - 4], 0xffffffff
je 0x40551a
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40551a
push esi
call fcn.0040eabb
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.00404620
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, 0x4312b8
je 0x40557b
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40557b
mov eax, dword [ebp - 0x18]
add eax, 0xfffffff4
push eax
call fcn.0040eabb
add esp, 4
mov eax, dword [ebp - 0x24]
mov esi, dword [0x4312c8]
test eax, eax
je 0x4055e0
mov ecx, dword [ebp - 0x20]
mov edi, ecx
mov ebx, eax
mov dword [ebp - 0x10], esi
test ecx, ecx
je 0x4055bf
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x4055bc
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x4055bc
mov esi, dword [ebp - 0x10]
push eax
push ebx
push esi
call fcn.004150e0
add esp, 0xc
jmp 0x4055bf
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, 0x4312b8
jmp 0x405603
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, 0x4312b8
mov dword [ebp - 4], 0xffffffff
je 0x405623
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x405623
push esi
call fcn.0040eabb
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.00404620
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, 0x4312b8
je 0x405687
add eax, 0xfffffff4
push eax
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x405687
mov eax, dword [ebp + 0xc]
add eax, 0xfffffff4
push eax
call fcn.0040eabb
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 0x405977
push 0x3d
push ecx
call fcn.0041cc02
mov ebx, eax
add esp, 8
test ebx, ebx
je 0x405977
push 0x26
push ebx
call fcn.0041cc02
add esp, 8
mov dword [ebp - 0x14], eax
test eax, eax
je 0x405843
jmp 0x4056d0
mov esi, dword [ebp - 0x14]
add esi, 2
push 0x26
push esi
call fcn.0041cc02
push 0x3d
push esi
mov edi, eax
call fcn.0041cc02
add esp, 0x10
test edi, edi
je 0x405704
test eax, eax
je 0x405843
cmp eax, edi
jbe 0x405700
mov dword [ebp - 0x14], edi
jmp 0x4056d0
jae 0x4056d0
jmp 0x40570c
test eax, eax
je 0x405843
mov esi, dword [ebp - 0x14]
mov edx, dword [0x4312c8]
sub esi, ebx
sar esi, 1
dec esi
mov dword [ebp - 0x10], edx
je 0x405748
mov ecx, esi
lea edx, [ebp - 0x10]
call fcn.004013a0
test eax, eax
je 0x405748
lea eax, [esi + esi]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x405748
mov edx, dword [ebp - 0x10]
push eax
lea ecx, [ebx + 2]
push ecx
push edx
call fcn.004150e0
add esp, 0xc
mov dword [ebp - 4], 0xe
mov esi, dword [ebp - 0x18]
mov edi, dword [0x4312c8]
sub ebx, esi
sar ebx, 1
mov dword [ebp + 0xc], edi
je 0x40578c
mov ecx, ebx
lea edx, [ebp + 0xc]
call fcn.004013a0
test eax, eax
je 0x405789
lea eax, [ebx + ebx]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x405789
mov edi, dword [ebp + 0xc]
push eax
push esi
push edi
call fcn.004150e0
add esp, 0xc
jmp 0x40578c
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.0040ee4a
add esp, 0xc
test eax, eax
je 0x4057dc
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.0040ee4a
add esp, 0xc
test eax, eax
je 0x4057dc
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp - 0x10]
push eax
push esi
lea ecx, [ebp + 0xc]
call fcn.00405a60
inc dword [esi + 8]
lea ecx, [edi - 0xc]
cmp ecx, 0x4312b8
je 0x4057fe
lea esi, [edi - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x4057fe
push esi
call fcn.0040eabb
add esp, 4
mov dword [ebp - 4], 0xffffffff
mov esi, dword [ebp - 0x10]
lea edx, [esi - 0xc]
cmp edx, 0x4312b8
je 0x40582a
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x40582a
push esi
call fcn.0040eabb
add esp, 4
mov eax, dword [ebp - 0x14]
add eax, 2
mov dword [ebp - 0x18], eax
cmp eax, dword [ebp - 0x1c]
jae 0x405977
mov ecx, eax
jmp 0x4056a0
mov eax, dword [0x4312c8]
lea esi, [ebx + 2]
mov dword [ebp + 0xc], eax
test esi, esi
je 0x40589c
mov ecx, esi
shr ecx, 0x10
test ecx, ecx
jne 0x405869
movzx eax, si
push eax
lea ecx, [ebp + 0xc]
call fcn.00401130
jmp 0x40589c
push esi
call dword [sym.imp.KERNEL32.dll_lstrlenW]
mov edi, eax
test edi, edi
je 0x40589c
mov ecx, edi
lea edx, [ebp + 0xc]
call fcn.004013a0
test eax, eax
je 0x40589c
lea eax, [edi + edi]
lea edx, [eax + 2]
cmp edx, eax
jb 0x40589c
push eax
mov eax, dword [ebp + 0xc]
push esi
push eax
call fcn.004150e0
add esp, 0xc
mov dword [ebp - 4], 0x10
mov esi, dword [ebp - 0x18]
mov edi, dword [0x4312c8]
sub ebx, esi
sar ebx, 1
mov dword [ebp - 0x18], edi
je 0x4058e0
mov ecx, ebx
lea edx, [ebp - 0x18]
call fcn.004013a0
test eax, eax
je 0x4058dd
lea eax, [ebx + ebx]
lea ecx, [eax + 2]
cmp ecx, eax
jb 0x4058dd
mov edi, dword [ebp - 0x18]
push eax
push esi
push edi
call fcn.004150e0
add esp, 0xc
jmp 0x4058e0
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.0040ee4a
add esp, 0xc
test eax, eax
je 0x405930
mov ecx, dword [esi + 8]
mov edx, dword [esi + 4]
push 4
inc ecx
push ecx
push edx
mov dword [esi], eax
call fcn.0040ee4a
add esp, 0xc
test eax, eax
je 0x405930
mov edx, dword [esi + 8]
mov dword [esi + 4], eax
lea eax, [ebp + 0xc]
push eax
push esi
lea ecx, [ebp - 0x18]
call fcn.00405a60
inc dword [esi + 8]
lea ecx, [edi - 0xc]
cmp ecx, 0x4312b8
je 0x405952
lea esi, [edi - 0xc]
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x405952
push esi
call fcn.0040eabb
add esp, 4
mov esi, dword [ebp + 0xc]
lea edx, [esi - 0xc]
cmp edx, 0x4312b8
je 0x405977
add esi, 0xfffffff4
push esi
call dword [sym.imp.KERNEL32.dll_InterlockedDecrement]
test eax, eax
jg 0x405977
push esi
call fcn.0040eabb
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