Function at 0x404e20
Capabilities:
Parse url

Disassembly:
push 0xffffffffffffffff
push 0x421160
mov eax, dword fs:[0]
push eax
sub esp, 0x48
push ebx
push ebp
push esi
push edi
mov eax, dword [0x428040]
xor eax, esp
push eax
lea eax, [esp + 0x5c]
mov dword fs:[0], eax
mov esi, dword [esp + 0x70]
mov ebp, dword [esp + 0x6c]
lea edi, [ebp + 0x3c]
mov eax, esi
call fcn.00402560
push 0x38
lea eax, [esp + 0x28]
push 0
push eax
call fcn.0040faf0
mov ecx, dword [esi]
mov edi, 1
mov dword [esp + 0x2c], 0x3c
mov dword [esp + 0x34], edi
mov dword [esp + 0x40], edi
mov dword [esp + 0x4c], edi
mov dword [esp + 0x54], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x64], edi
mov ebx, dword [ecx - 0xc]
add esp, 0xc
call dword [0x428008]
mov esi, dword [esi]
lea edx, [esp + 0x20]
push edx
push 0
push ebx
push esi
call dword [sym.imp.WININET.dll_InternetCrackUrlW]
test eax, eax
jne 0x404eb9
mov byte [ebp + 4], al
xor al, al
jmp 0x40573b
mov ebx, dword [esp + 0x24]
test ebx, ebx
mov eax, dword [esp + 0x2c]
mov dword [ebp + 0x34], eax
je 0x404f16
mov esi, dword [esp + 0x28]
lea edi, [esp + 0x14]
call fcn.00402090
lea edi, [ebp + 8]
mov dword [esp + 0x64], 0
call fcn.00402560
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404f98
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x404f98
mov edx, dword [0x42a3c0]
mov eax, dword [edx]
push 2
push 0
mov ecx, 0x42a3c0
call eax
test eax, eax
jne 0x404f32
call fcn.00403500
cmp dword [eax + 8], 0
lea esi, [eax + 0x10]
mov dword [esp + 0x14], esi
jge 0x404f49
push 0x80070057
call fcn.00403850
push 0
push 0
push 0
mov dword [esi - 0xc], 0
push esi
mov word [esi], 0
call fcn.0040dd7d
add esp, 0x10
mov dword [esp + 0x64], edi
lea edi, [ebp + 8]
lea eax, [esp + 0x14]
call fcn.00402560
add esi, 0xfffffff0
mov dword [esp + 0x64], 0xffffffff
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x404f98
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov ebx, dword [esp + 0x3c]
test ebx, ebx
je 0x404fce
mov esi, dword [esp + 0x40]
lea edi, [esp + 0x14]
call fcn.00402090
lea edi, [ebp + 0x10]
mov dword [esp + 0x64], 2
call fcn.00402560
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
jmp 0x40503b
mov edx, dword [0x42a3c0]
mov eax, dword [edx]
push 2
push 0
mov ecx, 0x42a3c0
call eax
test eax, eax
jne 0x404fea
call fcn.00403500
cmp dword [eax + 8], 0
lea esi, [eax + 0x10]
mov dword [esp + 0x14], esi
jge 0x405001
push 0x80070057
call fcn.00403850
push 0
push 0
push 0
mov dword [esi - 0xc], 0
push esi
mov word [esi], 0
call fcn.0040dd7d
add esp, 0x10
lea edi, [ebp + 0x10]
lea eax, [esp + 0x14]
mov dword [esp + 0x64], 3
call fcn.00402560
mov dword [esp + 0x64], 0xffffffff
lea eax, [esi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405054
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x44]
test ebx, ebx
je 0x40508a
mov esi, dword [esp + 0x48]
lea edi, [esp + 0x14]
call fcn.00402090
lea edi, [ebp + 0x14]
mov dword [esp + 0x64], 4
call fcn.00402560
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
jmp 0x4050f7
mov edx, dword [0x42a3c0]
mov eax, dword [edx]
push 2
push 0
mov ecx, 0x42a3c0
call eax
test eax, eax
jne 0x4050a6
call fcn.00403500
cmp dword [eax + 8], 0
lea esi, [eax + 0x10]
mov dword [esp + 0x14], esi
jge 0x4050bd
push 0x80070057
call fcn.00403850
push 0
push 0
push 0
mov dword [esi - 0xc], 0
push esi
mov word [esi], 0
call fcn.0040dd7d
add esp, 0x10
lea edi, [ebp + 0x14]
lea eax, [esp + 0x14]
mov dword [esp + 0x64], 5
call fcn.00402560
mov dword [esp + 0x64], 0xffffffff
lea eax, [esi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405110
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x30]
test ebx, ebx
je 0x405146
mov esi, dword [esp + 0x34]
lea edi, [esp + 0x14]
call fcn.00402090
lea edi, [ebp + 0xc]
mov dword [esp + 0x64], 6
call fcn.00402560
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
jmp 0x4051b3
mov edx, dword [0x42a3c0]
mov eax, dword [edx]
push 2
push 0
mov ecx, 0x42a3c0
call eax
test eax, eax
jne 0x405162
call fcn.00403500
cmp dword [eax + 8], 0
lea esi, [eax + 0x10]
mov dword [esp + 0x14], esi
jge 0x405179
push 0x80070057
call fcn.00403850
push 0
push 0
push 0
mov dword [esi - 0xc], 0
push esi
mov word [esi], 0
call fcn.0040dd7d
add esp, 0x10
lea edi, [ebp + 0xc]
lea eax, [esp + 0x14]
mov dword [esp + 0x64], 7
call fcn.00402560
mov dword [esp + 0x64], 0xffffffff
lea eax, [esi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4051cc
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x4c]
test ebx, ebx
je 0x405202
mov esi, dword [esp + 0x50]
lea edi, [esp + 0x14]
call fcn.00402090
lea edi, [ebp + 0x18]
mov dword [esp + 0x64], 8
call fcn.00402560
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
jmp 0x40526f
mov edx, dword [0x42a3c0]
mov eax, dword [edx]
push 2
push 0
mov ecx, 0x42a3c0
call eax
test eax, eax
jne 0x40521e
call fcn.00403500
cmp dword [eax + 8], 0
lea esi, [eax + 0x10]
mov dword [esp + 0x14], esi
jge 0x405235
push 0x80070057
call fcn.00403850
push 0
push 0
push 0
mov dword [esi - 0xc], 0
push esi
mov word [esi], 0
call fcn.0040dd7d
add esp, 0x10
lea edi, [ebp + 0x18]
lea eax, [esp + 0x14]
mov dword [esp + 0x64], 9
call fcn.00402560
mov dword [esp + 0x64], 0xffffffff
lea eax, [esi - 0x10]
or edx, 0xffffffff
lea ecx, [eax + 0xc]
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405288
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov edx, dword [esp + 0x70]
mov eax, dword [esp + 0x50]
mov ecx, dword [edx]
add eax, eax
sub eax, ecx
add eax, dword [esp + 0x4c]
lea ecx, [esp + 0x14]
sar eax, 1
call fcn.00405760
lea edi, [ebp + 0x24]
mov dword [esp + 0x64], 0xa
call fcn.00402560
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4052dd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [esp + 0x54]
test ebx, ebx
je 0x405335
mov esi, dword [esp + 0x58]
lea edi, [esp + 0x14]
call fcn.00402090
lea ebx, [ebp + 0x1c]
mov edi, ebx
mov dword [esp + 0x64], 0xb
call fcn.00402560
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4053bd
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
jmp 0x4053bd
mov edx, dword [0x42a3c0]
mov eax, dword [edx]
push 2
push 0
mov ecx, 0x42a3c0
call eax
test eax, eax
jne 0x405351
call fcn.00403500
cmp dword [eax + 8], 0
lea esi, [eax + 0x10]
mov dword [esp + 0x14], esi
jge 0x405368
push 0x80070057
call fcn.00403850
push 0
push 0
push 0
mov dword [esi - 0xc], 0
push esi
mov word [esi], 0
call fcn.0040dd7d
add esp, 0x10
lea ebx, [ebp + 0x1c]
lea eax, [esp + 0x14]
mov edi, ebx
mov dword [esp + 0x64], 0xc
call fcn.00402560
add esi, 0xfffffff0
mov dword [esp + 0x64], 0xffffffff
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4053bd
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov ax, word [esp + 0x38]
mov edx, dword [esp + 0x70]
mov word [ebp + 0x38], ax
mov ecx, dword [edx]
mov eax, dword [esp + 0x4c]
sub eax, ecx
sar eax, 1
lea ecx, [esp + 0x70]
call fcn.00405760
lea edi, [ebp + 0x20]
mov dword [esp + 0x64], 0xd
call fcn.00402560
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [esp + 0x70]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405415
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebx, dword [ebx]
mov eax, dword [ebx - 0xc]
lea eax, [ebx + eax*2]
lea ebp, [ebx + 2]
cmp ebp, eax
mov dword [esp + 0x1c], eax
jae 0x405731
lea esp, [esp]
push 0x3d
push ebp
call fcn.0040de98
mov edi, eax
add esp, 8
test edi, edi
je 0x405731
push 0x26
push edi
call fcn.0040de98
add esp, 8
test eax, eax
mov dword [esp + 0x70], eax
je 0x405619
lea esp, [esp]
mov esi, dword [esp + 0x70]
add esi, 2
push 0x26
push esi
call fcn.0040de98
push 0x3d
push esi
mov ebx, eax
call fcn.0040de98
add esp, 0x10
test ebx, ebx
je 0x405496
test eax, eax
je 0x405619
cmp eax, ebx
jbe 0x405492
mov dword [esp + 0x70], ebx
jmp 0x405460
jae 0x405460
jmp 0x40549e
test eax, eax
je 0x405619
mov esi, dword [esp + 0x70]
sub esi, edi
sar esi, 1
lea ebx, [edi + 2]
sub esi, 1
test ebx, ebx
jne 0x4054b8
test esi, esi
jne 0x404f3f
mov edx, dword [0x42a3c0]
mov eax, dword [edx]
push 2
push esi
mov ecx, 0x42a3c0
call eax
test eax, eax
je 0x404f2d
test esi, esi
lea ecx, [eax + 0x10]
mov dword [esp + 0x14], ecx
jl 0x404f3f
cmp esi, dword [ecx - 8]
jg 0x404f3f
lea eax, [esi + esi]
push eax
push ebx
push eax
mov dword [ecx - 0xc], esi
push ecx
mov word [eax + ecx], 0
call fcn.0040dd7d
add esp, 0x10
sub edi, ebp
sar edi, 1
test ebp, ebp
mov dword [esp + 0x64], 0xe
jne 0x40551a
test edi, edi
jne 0x404f3f
mov edx, dword [0x42a3c0]
mov eax, dword [edx]
push 2
push edi
mov ecx, 0x42a3c0
call eax
test eax, eax
je 0x404f2d
test edi, edi
lea esi, [eax + 0x10]
mov dword [esp + 0x18], esi
jl 0x404f3f
cmp edi, dword [esi - 8]
jg 0x404f3f
lea eax, [edi + edi]
push eax
push ebp
push eax
mov dword [esi - 0xc], edi
push esi
mov word [eax + esi], 0
call fcn.0040dd7d
mov ebx, dword [esp + 0x7c]
mov byte [esp + 0x74], 0xf
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebx + 0x28]
add ebx, 0x28
push 4
add ecx, 1
push ecx
push edx
call fcn.0040dd04
add esp, 0x1c
test eax, eax
je 0x4055ba
mov ecx, dword [ebx + 4]
mov dword [ebx], eax
mov eax, dword [ebx + 8]
push 4
add eax, 1
push eax
push ecx
call fcn.0040dd04
add esp, 0xc
test eax, eax
je 0x4055ba
mov ecx, dword [ebx + 8]
lea edx, [esp + 0x14]
mov dword [ebx + 4], eax
push edx
lea eax, [esp + 0x1c]
push eax
call fcn.004059d0
add dword [ebx + 8], 1
add esi, 0xfffffff0
mov byte [esp + 0x64], 0xe
lea ecx, [esi + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x4055db
mov ecx, dword [esi]
mov eax, dword [ecx]
mov edx, dword [eax + 4]
push esi
call edx
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405603
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ebp, dword [esp + 0x70]
add ebp, 2
cmp ebp, dword [esp + 0x1c]
jb 0x405430
jmp 0x405731
lea edx, [esp + 0x18]
lea ecx, [edi + 2]
push edx
call fcn.00401fe0
mov dword [esp + 0x70], eax
sub edi, ebp
sar edi, 1
test ebp, ebp
mov dword [esp + 0x64], 0x10
jne 0x405648
test edi, edi
je 0x405648
push 0x80070057
call fcn.00403850
mov eax, dword [0x42a3c0]
mov edx, dword [eax]
push 2
push edi
mov ecx, 0x42a3c0
call edx
test eax, eax
jne 0x405662
call fcn.00403500
test edi, edi
lea esi, [eax + 0x10]
mov dword [esp + 0x1c], esi
jl 0x404f3f
cmp edi, dword [esi - 8]
jg 0x404f3f
lea eax, [edi + edi]
push eax
push ebp
push eax
mov dword [esi - 0xc], edi
push esi
mov word [eax + esi], 0
call fcn.0040dd7d
mov ebx, dword [esp + 0x7c]
mov byte [esp + 0x74], 0x11
mov eax, dword [ebx + 0x30]
mov ecx, dword [ebx + 0x28]
add ebx, 0x28
push 4
add eax, 1
push eax
push ecx
call fcn.0040dd04
add esp, 0x1c
test eax, eax
je 0x4056e8
mov edx, dword [ebx + 8]
push 4
add edx, 1
mov dword [ebx], eax
mov eax, dword [ebx + 4]
push edx
push eax
call fcn.0040dd04
add esp, 0xc
test eax, eax
je 0x4056e8
mov ecx, dword [esp + 0x70]
push ecx
mov ecx, dword [ebx + 8]
lea edx, [esp + 0x20]
push edx
mov dword [ebx + 4], eax
call fcn.004059d0
add dword [ebx + 8], 1
add esi, 0xfffffff0
mov byte [esp + 0x64], 0x10
lea eax, [esi + 0xc]
or ecx, 0xffffffff
lock xadd dword [eax], ecx
dec ecx
test ecx, ecx
jg 0x405709
mov ecx, dword [esi]
mov edx, dword [ecx]
mov eax, dword [edx + 4]
push esi
call eax
mov dword [esp + 0x64], 0xffffffff
mov eax, dword [esp + 0x18]
add eax, 0xfffffff0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x405731
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
mov eax, dword [edx + 4]
call eax
mov ecx, dword [esp + 0x6c]
mov byte [ecx + 4], 1
mov al, 1
mov ecx, dword [esp + 0x5c]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
add esp, 0x54
ret 8