Function at 0x4176be
Capabilities:
Parse url

Disassembly:
sub esp, 0x2b4
push ebx
push ebp
push esi
push edi
mov esi, ecx
xor ebx, ebx
push dword [esi + 0x28]
movzx eax, byte [esi + 0x18]
push eax
push dword [esi + 0x1c]
push dword [esi + 0x10]
push dword [esi + 8]
push dword [esi + 4]
push 0x405f78
push ebx
push 0x21e
push 0x405d68
push 0x4060c4
call fcn.0041a5ac
add esp, 0x2c
or al, 0xff
mov edi, 0x42a034
mov byte [esp + 0x17], al
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x42a050]
test ecx, ecx
je 0x4177b3
cmp dword [0x42a04c], ebx
je 0x4177b3
mov edx, dword [esi + 8]
xor ebp, ebp
push ebp
push dword [esi + 0xc]
call fcn.00416ccc
test al, al
je 0x4177b3
push dword [0x42a050]
push 0x4060e8
push ebp
push 0x229
push 0x405d68
push 0x4060c4
call fcn.0041a5ac
add esp, 0x18
call fcn.004254e0
mov dword [esp + 0x18], eax
test eax, eax
je 0x417791
push dword [0x42a04c]
lea edx, [esp + 0x1c]
push 4
pop ecx
call fcn.00416d89
mov ecx, dword [esp + 0x18]
test al, al
jne 0x41778c
call fcn.00418601
xor ecx, ecx
call fcn.0042553d
mov ecx, dword [0x42a04c]
call fcn.00418601
mov ecx, dword [0x42a050]
call fcn.00418601
xor eax, eax
mov dword [0x42a04c], eax
mov dword [0x42a050], eax
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
mov ecx, dword [esi + 0x40]
test ecx, ecx
je 0x41795d
lea eax, [esp + 0x1c]
mov edx, 0x4e25
push eax
push 0x10000000
call fcn.0041eb36
mov edx, dword [esp + 0x1c]
mov ecx, eax
mov dword [esp + 0x18], ecx
call fcn.004196a8
test al, al
je 0x417947
mov ebp, ecx
cmp byte [ebp + 1], 0
je 0x41792f
mov al, byte [ebp]
cmp al, 0x21
je 0x41782c
cmp al, 0x2d
je 0x417825
cmp al, 0x40
je 0x41781e
cmp al, 0x5e
je 0x417817
xor eax, eax
mov byte [esp + 0x16], al
jmp 0x417834
mov byte [esp + 0x16], 4
jmp 0x417831
mov byte [esp + 0x16], 2
jmp 0x417831
mov byte [esp + 0x16], 3
jmp 0x417831
mov byte [esp + 0x16], 1
inc ebp
xor eax, eax
mov edx, dword [esi + 8]
mov ecx, ebp
push eax
push dword [esi + 0xc]
call fcn.00416ccc
test al, al
je 0x41792f
movzx edi, byte [esp + 0x16]
xor eax, eax
push edi
push ebp
push dword [esi + 8]
push 0x406140
push eax
push 0x25d
push 0x405d68
push 0x4060c4
call fcn.0041a5ac
xor edx, edx
add esp, 0x20
sub edi, edx
je 0x417924
sub edi, 1
je 0x417898
sub edi, 1
je 0x4178a2
sub edi, 1
je 0x417895
sub edi, 1
jne 0x417928
or ebx, 1
mov byte [esp + 0x17], 1
jmp 0x417928
push 0x3c
pop edi
push edi
push edx
lea eax, [esp + 0x30]
push eax
call fcn.0041869b
lea eax, [esp + 0x1b8]
mov dword [esp + 0x28], edi
mov dword [esp + 0x38], eax
lea eax, [esp + 0x28]
push eax
push edx
push dword [esi + 0xc]
mov dword [esp + 0x48], 0x103
push dword [esi + 8]
call dword [sym.imp.WININET.dll_InternetCrackUrlA]
cmp eax, 1
jne 0x417928
cmp dword [esp + 0x3c], 0
jbe 0x417928
mov edi, 0x429ff4
push edi
call dword [sym.imp.KERNEL32.dll_EnterCriticalSection]
mov ecx, dword [0x42a014]
push 0x14
pop eax
mov word [0x42a010], ax
call fcn.00418601
push 0xffffffffffffffff
lea edx, [esp + 0x1bc]
xor ecx, ecx
call fcn.00418854
push edi
mov dword [0x42a014], eax
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
jmp 0x417928
mov byte [esp + 0x17], dl
cmp byte [esp + 0x16], 2
jne 0x417943
xor edx, edx
mov ecx, ebp
inc edx
call fcn.004196e1
mov ebp, eax
test ebp, ebp
jne 0x4177f2
mov ecx, dword [esp + 0x18]
mov al, byte [esp + 0x17]
mov byte [esp + 0x17], al
call fcn.00418601
mov dword [esp + 0x1c], ebx
test bl, 1
jne 0x41797c
mov edx, dword [esi + 0x44]
test edx, edx
je 0x41797c
xor eax, eax
push eax
push dword [esi + 0xc]
push dword [esi + 8]
push 3
pop ecx
call fcn.00416fe1
test al, al
je 0x41797c
or ebx, 1
cmp dword [esi + 0x20], 0x21
jb 0x4179b0
push 0x10
lea edx, [esp + 0x2c]
pop ecx
call fcn.004255ad
mov edi, dword [esi + 0x1c]
lea edx, [esp + 0x28]
push 0x21
mov ecx, edi
call fcn.0041866f
test eax, eax
jne 0x4179b0
mov al, byte [edi + 0x21]
cmp al, 0x3b
je 0x4179ad
test al, al
jne 0x4179b0
or ebx, 0x10
mov eax, dword [esi + 0x2c]
xor ecx, ecx
mov ebp, ecx
mov dword [esp + 0x18], ebp
test eax, eax
je 0x4179fc
cmp word [eax], cx
je 0x4179fc
mov eax, dword [esi + 0x30]
test eax, eax
je 0x4179fc
cmp word [eax], cx
je 0x4179fc
push 0x11
lea edx, [esp + 0x154]
pop ecx
call fcn.004255fb
push dword [esi + 0x30]
lea eax, [esp + 0x154]
push dword [esi + 0x2c]
push eax
lea eax, [esp + 0x24]
push eax
call fcn.00419554
add esp, 0x10
jmp 0x417a2e
mov eax, dword [esi + 0x34]
test eax, eax
je 0x417a6c
cmp byte [eax], cl
je 0x417a6c
push 0x12
lea edx, [esp + 0xa4]
pop ecx
call fcn.004255fb
push dword [esi + 0x34]
lea eax, [esp + 0xa4]
push eax
lea eax, [esp + 0x20]
push eax
call fcn.00419554
add esp, 0xc
mov ebp, dword [esp + 0x18]
test eax, eax
jle 0x417a6a
lea edx, [eax + eax]
mov ecx, ebp
call fcn.00419bf3
cmp dword [0x42a054], eax
jne 0x417a62
test ebp, ebp
je 0x417a5c
push ebp
xor eax, eax
push eax
push dword [0x42ac50]
call dword [sym.imp.KERNEL32.dll_HeapFree]
xor ecx, ecx
mov ebp, ecx
jmp 0x417a6c
mov dword [0x42a054], eax
or ebx, 0x20
xor ecx, ecx
mov al, byte [esp + 0x17]
cmp al, 0xff
jne 0x417a86
cmp byte [esi + 0x18], 1
jne 0x417a7f
cmp dword [esi + 0x28], ecx
ja 0x417a8a
test bl, 0x20
je 0x417a8d
jmp 0x417a8a
cmp al, 1
jne 0x417a8d
or ebx, 8
test bl, 8
je 0x417c0e
mov edx, dword [esi + 0x28]
mov byte [esp + 0x16], cl
test edx, edx
jne 0x417ab5
push 0xb
lea edx, [esp + 0x20]
pop ecx
call fcn.004255ad
push 7
lea ecx, [esp + 0x20]
jmp 0x417b0f
test bl, 0x10
je 0x417af4
mov ecx, dword [esi + 0x24]
call fcn.00418a93
mov edi, eax
test edi, edi
je 0x417c0b
xor ecx, ecx
mov eax, ecx
cmp dword [esi + 0x28], ecx
jbe 0x417b1f
mov cl, byte [eax + edi]
cmp cl, 0x26
jne 0x417ae3
mov byte [eax + edi], 0xa
jmp 0x417aec
cmp cl, 0x2b
jne 0x417aec
mov byte [eax + edi], 0x20
inc eax
cmp eax, dword [esi + 0x28]
jb 0x417ad5
jmp 0x417b1f
cmp dword [esi + 0x20], ecx
jne 0x417c0b
push 0xc
lea edx, [esp + 0x20]
pop ecx
call fcn.004255ad
push 9
lea ecx, [esp + 0x20]
pop edx
call fcn.00418a93
mov edi, eax
test edi, edi
je 0x417c0b
lea ecx, [esp + 0x18]
call fcn.004164e8
push dword [esi + 0xc]
mov edx, dword [esi + 8]
xor ecx, ecx
call fcn.00418854
mov dword [esp + 0x1c], eax
test eax, eax
je 0x417bf4
push 0x3c
xor edx, edx
lea eax, [esp + 0x68]
push edx
push eax
call fcn.0041869b
lea eax, [esp + 0x64]
mov dword [esp + 0x64], 0x3c
push eax
push edx
push dword [esi + 0xc]
push dword [esi + 8]
call dword [sym.imp.WININET.dll_InternetCrackUrlA]
cmp eax, 1
jne 0x417beb
push 0xa
lea edx, [esp + 0xec]
pop ecx
call fcn.004255fb
push 0xd
lea edx, [esp + 0x2c]
pop ecx
call fcn.004255fb
cmp dword [esi + 0x10], 0
mov edx, 0x403ecc
push edi
mov ecx, 0x4061b0
mov eax, edx
cmovne ecx, dword [esi + 0x10]
test ebp, ebp
cmovne eax, ebp
cmp dword [esp + 0x1c], 0
push eax
mov eax, edx
cmovne eax, dword [esp + 0x20]
test bl, 1
push eax
push ecx
lea eax, [esp + 0x38]
cmove eax, edx
lea ecx, [esp + 0xf8]
push eax
mov eax, dword [esp + 0x30]
push eax
push ecx
push 0
push eax
xor eax, eax
cmp dword [esp + 0x94], 4
sete al
add eax, 0xb
push eax
call fcn.0040a9dc
add esp, 0x28
mov byte [esp + 0x16], al
mov ecx, dword [esp + 0x1c]
call fcn.00418601
mov ecx, dword [esp + 0x18]
call fcn.00418601
mov ecx, edi
call fcn.00418601
cmp byte [esp + 0x16], 0
jne 0x417c0e
and ebx, 0xfffffff7
test ebp, ebp
je 0x417c22
push ebp
xor eax, eax
push eax
push dword [0x42ac50]
call dword [sym.imp.KERNEL32.dll_HeapFree]
test bl, 1
je 0x417c48
push 0x4061b4
xor eax, eax
push eax
push 0x31e
push 0x405d68
push 0x4060c4
call fcn.0041a5ac
add esp, 0x14
jmp 0x417cad
mov ecx, esi
call fcn.00417049
test al, al
je 0x417c78
push dword [esi + 0x3c]
xor eax, eax
or ebx, 2
push 0x4061e0
push eax
push 0x329
push 0x405d68
push 0x4060c4
call fcn.0041a5ac
add esp, 0x18
test bl, 0x10
je 0x417cad
mov ecx, esi
call fcn.00417499
test al, al
je 0x417cad
push dword [esi + 0x24]
xor eax, eax
or ebx, 4
push 0x40622c
push eax
push 0x332
push 0x405d68
push 0x4060c4
call fcn.0041a5ac
add esp, 0x18
pop edi
pop esi
pop ebp
mov eax, ebx
pop ebx
add esp, 0x2b4
ret