Function at 0x40cfb0
Capabilities:
Access peb ldr_data

Disassembly:
mov eax, dword fs:[0]
mov edx, dword [esp + 0xc]
push 0xffffffffffffffff
push 0x450608
push eax
mov dword fs:[0], esp
sub esp, 0x14
push ebx
mov ebx, dword [esp + 0x2c]
push esi
push edi
mov edi, dword [esp + 0x30]
push edx
mov esi, ecx
mov edx, dword [esi + 0x9c]
mov ecx, dword [esi + 0x98]
mov eax, dword [ecx]
push edx
push ebx
push edi
call dword [eax + 0x10]
mov ecx, dword [esi + 0x98]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [esi + 0x98]
mov edx, dword [ecx]
push 1
call dword [edx + 0x20]
mov ecx, dword [esi + 0x98]
mov eax, dword [ecx]
call dword [eax + 4]
and eax, 0xffff0000
cmp eax, 0x20000
jne 0x40d063
mov al, byte [esp + 0x44]
test al, al
je 0x40d042
push ebx
call fcn.00411980
add esp, 4
cmp eax, 4
jbe 0x40d063
mov ecx, dword [esi + 0x250]
mov edx, dword [ecx]
push ebx
call dword [edx]
test al, al
je 0x40d063
mov ecx, dword [esi + 0x98]
mov eax, dword [ecx]
call dword [eax + 0x14]
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
add esp, 0x20
ret 0x18
call fcn.004472e0
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x10], eax
mov dword [esp + 0x28], 0
call fcn.004472e0
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0xc], eax
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0x10]
push ecx
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x28]
push eax
push edi
mov byte [esp + 0x3c], 1
call fcn.0044b8f0
call fcn.004472e0
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
lea ecx, [eax + 0x10]
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x1c]
cmp eax, 0x1001
mov byte [esp + 0x28], 2
ja 0x40d106
je 0x40d0fc
dec eax
je 0x40d0f2
dec eax
je 0x40d0e8
dec eax
jne 0x40d11f
push str.http
jmp 0x40d1b0
push str.gopher
jmp 0x40d1b0
push 0x45691c
jmp 0x40d1b0
push str.file
jmp 0x40d1b0
sub eax, 0x1002
je 0x40d1ab
sub eax, 4
je 0x40d1a4
sub eax, 5
je 0x40d19d
lea eax, [ecx - 0x10]
mov byte [esp + 0x28], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d13e
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0xc]
add eax, 0xfffffff0
mov byte [esp + 0x28], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d161
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov dword [esp + 0x28], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d187
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
pop edi
pop esi
xor al, al
pop ebx
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
add esp, 0x20
ret 0x18
push str.https
jmp 0x40d1b0
push str.nntp
jmp 0x40d1b0
push str.mailto
lea ecx, [esp + 0x34]
call fcn.004027b0
mov ecx, dword [esi + 0x98]
mov eax, dword [ecx]
push ebp
call dword [eax + 0x14]
mov al, byte [esp + 0x44]
test al, al
je 0x40d3df
mov eax, dword [esi + 0x25c]
test eax, eax
je 0x40d3df
mov ecx, dword [esi + 0x260]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov ecx, edx
shr ecx, 0x1f
add ecx, edx
mov dword [esp + 0x1c], ecx
je 0x40d3df
xor ebp, ebp
mov dword [esp + 0x18], ebp
lea ebx, [ebx]
mov eax, dword [esi + 0x25c]
test eax, eax
je 0x40d235
mov ecx, dword [esi + 0x260]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x18], eax
jge 0x40d3df
call fcn.004472e0
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x1c], eax
mov eax, dword [esi + 0x25c]
cmp dword [eax + ebp + 0x18], 0x10
mov byte [esp + 0x2c], 3
jb 0x40d26a
mov eax, dword [eax + ebp + 4]
jmp 0x40d26e
lea eax, [eax + ebp + 4]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
push ecx
push eax
push edx
lea eax, [esp + 0x28]
push str._s:___s_s
push eax
call fcn.0040ce90
mov eax, dword [esp + 0x50]
mov ecx, dword [esi + 0x98]
mov edi, dword [esp + 0x30]
mov edx, dword [ecx]
add esp, 0x14
push eax
mov eax, dword [esi + 0x9c]
push eax
push ebx
push edi
call dword [edx + 0x10]
mov ecx, dword [esi + 0x98]
mov edx, dword [ecx]
call dword [edx + 0x18]
mov ecx, dword [esi + 0x98]
mov eax, dword [ecx]
push 1
call dword [eax + 0x20]
mov ecx, dword [esi + 0x98]
mov edx, dword [ecx]
call dword [edx + 4]
and eax, 0xffff0000
cmp eax, 0x20000
jne 0x40d2fc
mov al, byte [esp + 0x48]
test al, al
je 0x40d332
push ebx
call fcn.00411980
add esp, 4
cmp eax, 4
jbe 0x40d2fc
mov ecx, dword [esi + 0x250]
mov eax, dword [ecx]
push ebx
call dword [eax]
test al, al
jne 0x40d332
mov ecx, dword [esi + 0x98]
mov edx, dword [ecx]
call dword [edx + 0x14]
lea eax, [edi - 0x10]
mov byte [esp + 0x2c], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d326
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
inc dword [esp + 0x18]
add ebp, 0x1c
jmp 0x40d210
mov ecx, dword [esi + 0x98]
mov eax, dword [ecx]
call dword [eax + 0x14]
lea eax, [edi - 0x10]
mov byte [esp + 0x2c], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d35c
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0x2c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d37f
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x2c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d3a2
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x2c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d3c8
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
pop ebp
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
add esp, 0x20
ret 0x18
mov al, byte [esp + 0x40]
test al, al
je 0x40d67d
mov ecx, dword [esi + 0x98]
mov eax, dword [ecx]
call dword [eax]
cmp eax, 1
jne 0x40d67d
mov ecx, dword [esi + 0x98]
push ecx
call fcn.0041d890
push 0
call fcn.00422bd0
add esp, 8
test eax, eax
mov dword [esi + 0x98], eax
jne 0x40d43c
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0x2c], 1
lea edx, [eax + 0xc]
or ecx, 0xffffffff
lock xadd dword [edx], ecx
dec ecx
test ecx, ecx
jmp 0x40d696
mov edx, dword [esi + 0x12c]
mov ecx, 0x10
cmp edx, ecx
jb 0x40d453
mov edx, dword [esi + 0x118]
jmp 0x40d459
lea edx, [esi + 0x118]
cmp dword [esi + 0x110], ecx
jb 0x40d469
mov ecx, dword [esi + 0xfc]
jmp 0x40d46f
lea ecx, [esi + 0xfc]
mov ebp, dword [esi + 0x9c]
mov edi, dword [eax]
push 1
push ebp
push edx
push ecx
mov ecx, eax
call dword [edi + 0x10]
mov ecx, dword [esi + 0x98]
mov eax, dword [ecx]
call dword [eax + 0x18]
mov ecx, dword [esi + 0x98]
mov edx, dword [ecx]
push 1
call dword [edx + 0x20]
mov ecx, dword [esi + 0x98]
mov eax, dword [ecx]
call dword [eax + 4]
and eax, 0xffff0000
cmp eax, 0x20000
jne 0x40d512
mov al, byte [esp + 0x48]
test al, al
je 0x40d4d5
push ebx
call fcn.00411980
add esp, 4
cmp eax, 4
jbe 0x40d512
mov ecx, dword [esi + 0x250]
mov edx, dword [ecx]
push ebx
call dword [edx]
test al, al
je 0x40d512
mov ecx, dword [esi + 0x98]
mov eax, dword [ecx]
call dword [eax + 0x14]
lea ecx, [esp + 0x34]
call fcn.00401f30
lea ecx, [esp + 0x10]
call fcn.00401f30
lea ecx, [esp + 0x14]
call fcn.00401f30
pop ebp
pop edi
pop esi
mov al, 1
pop ebx
mov ecx, dword [esp + 0x14]
mov dword fs:[0], ecx
add esp, 0x20
ret 0x18
mov ecx, dword [esi + 0x98]
mov edx, dword [ecx]
call dword [edx + 0x14]
mov al, byte [esp + 0x44]
test al, al
je 0x40d67d
lea ecx, [esi + 0x258]
call fcn.0040cb30
test al, al
jne 0x40d67d
xor ebp, ebp
mov dword [esp + 0x44], ebp
mov eax, dword [esi + 0x25c]
test eax, eax
je 0x40d567
mov ecx, dword [esi + 0x260]
sub ecx, eax
mov eax, 0x92492493
imul ecx
add edx, ecx
sar edx, 4
mov eax, edx
shr eax, 0x1f
add eax, edx
cmp dword [esp + 0x44], eax
jge 0x40d67d
call fcn.004472e0
mov edx, dword [eax]
mov ecx, eax
call dword [edx + 0xc]
add eax, 0x10
mov dword [esp + 0x40], eax
mov eax, dword [esi + 0x25c]
cmp dword [eax + ebp + 0x18], 0x10
mov byte [esp + 0x2c], 4
jb 0x40d59c
mov eax, dword [eax + ebp + 4]
jmp 0x40d5a0
lea eax, [eax + ebp + 4]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x34]
push ecx
push eax
push edx
lea eax, [esp + 0x4c]
push str._s:___s__s__s
push eax
call fcn.0040ce90
mov eax, dword [esp + 0x50]
mov ecx, dword [esi + 0x98]
mov edi, dword [esp + 0x54]
mov edx, dword [ecx]
add esp, 0x14
push eax
mov eax, dword [esi + 0x9c]
push eax
push ebx
push edi
call dword [edx + 0x10]
mov ecx, dword [esi + 0x98]
mov edx, dword [ecx]
call dword [edx + 0x18]
mov ecx, dword [esi + 0x98]
mov eax, dword [ecx]
push 1
call dword [eax + 0x20]
mov ecx, dword [esi + 0x98]
mov edx, dword [ecx]
call dword [edx + 4]
and eax, 0xffff0000
cmp eax, 0x20000
jne 0x40d62e
mov al, byte [esp + 0x48]
test al, al
je 0x40d664
push ebx
call fcn.00411980
add esp, 4
cmp eax, 4
jbe 0x40d62e
mov ecx, dword [esi + 0x250]
mov eax, dword [ecx]
push ebx
call dword [eax]
test al, al
jne 0x40d664
mov ecx, dword [esi + 0x98]
mov edx, dword [ecx]
call dword [edx + 0x14]
lea eax, [edi - 0x10]
mov byte [esp + 0x2c], 2
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d658
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
inc dword [esp + 0x44]
add ebp, 0x1c
jmp 0x40d542
mov ecx, dword [esi + 0x98]
mov eax, dword [ecx]
call dword [eax + 0x14]
lea ecx, [esp + 0x40]
call fcn.00401f30
jmp 0x40d4e0
mov eax, dword [esp + 0x34]
add eax, 0xfffffff0
mov byte [esp + 0x2c], 1
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d6a0
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x10]
add eax, 0xfffffff0
mov byte [esp + 0x2c], 0
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d6c3
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov eax, dword [esp + 0x14]
add eax, 0xfffffff0
mov dword [esp + 0x2c], 0xffffffff
lea ecx, [eax + 0xc]
or edx, 0xffffffff
lock xadd dword [ecx], edx
dec edx
test edx, edx
jg 0x40d6e9
mov ecx, dword [eax]
mov edx, dword [ecx]
push eax
call dword [edx + 4]
mov ecx, dword [esp + 0x24]
pop ebp
pop edi
pop esi
xor al, al
pop ebx
mov dword fs:[0], ecx
add esp, 0x20
ret 0x18