Function at 0x40f89d
Capabilities:
Reference http user-agent string

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x40
push 8
call fcn.0045120a
add esp, 4
mov dword [ebp - 4], eax
mov edi, eax
mov esi, 0xc4d431
lodsd eax, dword [esi]
stosd dword es:[edi], eax
lodsd eax, dword [esi]
stosd dword es:[edi], eax
push 0x28
call fcn.0045120a
add esp, 4
mov dword [ebp - 8], eax
mov ebx, eax
mov edi, eax
xor eax, eax
mov ecx, 0xa
rep stosd dword es:[edi], eax
mov dword [ebx], 0xc4da58
push 8
call fcn.0045120a
add esp, 4
mov dword [ebp - 0xc], eax
mov edi, eax
mov esi, 0xc4d431
lodsd eax, dword [esi]
stosd dword es:[edi], eax
lodsd eax, dword [esi]
stosd dword es:[edi], eax
mov dword [ebp - 0x10], 0
push 8
call fcn.0045120a
add esp, 4
mov dword [ebp - 0x14], eax
mov edi, eax
mov esi, 0xc4d431
lodsd eax, dword [esi]
stosd dword es:[edi], eax
lodsd eax, dword [esi]
stosd dword es:[edi], eax
mov dword [ebp - 0x18], 0
mov dword [ebp - 0x1c], 0
mov dword [ebp - 0x20], 0
jmp 0x40f948
push 0
mov ebx, 0x451920
call fcn.00451222
add esp, 4
mov dword [ebp - 0x24], eax
push 0xc4d8f3
push dword [ebp - 0x24]
mov ecx, 2
call fcn.00404e68
add esp, 8
mov dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x40f985
push ebx
call fcn.00451210
add esp, 4
lea eax, [ebp - 0x28]
push eax
call fcn.00410192
mov dword [ebp - 0x2c], eax
mov ebx, dword [ebp - 0x28]
test ebx, ebx
je 0x40f9a1
push ebx
call fcn.00451210
add esp, 4
cmp dword [ebp - 0x2c], 0
je 0x40ff64
lea eax, [ebp - 4]
push eax
push 4
mov eax, 2
call fcn.00451204
add esp, 8
mov eax, 0xc4d8fd
mov dword [ebp - 0x24], eax
mov ebx, dword [ebp - 4]
mov dword [ebp - 0x28], ebx
call fcn.004056b5
mov dword [ebp - 0x2c], ecx
mov edi, dword [ebp - 0x28]
mov dword [edi], 1
add edi, 4
mov eax, ecx
inc eax
mov dword [edi], eax
add edi, 4
cmp edi, ebx
je 0x40f9f0
mov esi, ebx
rep movsd dword es:[edi], dword [esi]
mov eax, dword [ebp - 0x2c]
inc eax
shl eax, 2
add eax, 8
push eax
push dword [ebp - 0x28]
call fcn.0045121c
add esp, 8
mov dword [ebp - 4], eax
mov edi, eax
add edi, 8
mov eax, dword [ebp - 0x2c]
shl eax, 2
add edi, eax
mov eax, dword [ebp - 0x24]
push edi
test eax, eax
je 0x40fa33
push eax
mov ebx, eax
call fcn.004010f7
inc eax
push eax
call fcn.0045120a
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
pop edi
mov dword [edi], eax
lea eax, [ebp - 8]
push eax
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 8]
push dword [ebp + 8]
lea eax, [ebp - 8]
push eax
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x78]
mov dword [ebp - 0x24], 0
push 0
push dword [ebp - 0x24]
push 0
lea eax, [ebp - 8]
push eax
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0xb4]
mov eax, 0xc4d92b
mov dword [ebp - 0x24], eax
lea eax, [ebp - 0x24]
push eax
lea eax, [ebp - 8]
push eax
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0xac]
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x40faa4
push ebx
call fcn.00451210
add esp, 4
lea eax, [ebp - 4]
push eax
lea eax, [ebp - 8]
push eax
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0xa4]
push 1
push 0xa
push 1
push 0xa
lea eax, [ebp - 8]
push eax
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x90]
push 0
push 0
push 0
push getpeername
push 0
push 0xc4d99a
push getpeername
push 0
mov eax, dword [0x152cf18]
test eax, eax
jne 0x40faff
mov eax, 0x533de2
push eax
push 3
mov ebx, 0x452b30
call fcn.00451222
add esp, 0x28
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
push eax
mov ebx, dword [ebp - 0xc]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x40fb37
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x40fb33
imul eax, dword [ebx]
jmp 0x40fb28
mov ecx, eax
test ecx, ecx
je 0x40fb56
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x40fb4f
push ebx
push eax
call fcn.00451210
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x40fb3d
call fcn.00451210
add esp, 4
pop eax
mov dword [ebp - 0xc], eax
mov ebx, dword [ebp - 0xc]
call fcn.0040bf5c
xor ecx, ecx
push eax
lea eax, [ebp - 0x10]
mov ebx, eax
pop eax
inc ecx
push ecx
push ebx
mov dword [ebx], ecx
push eax
cmp ecx, eax
jg 0x40fbe6
mov ebx, dword [ebp - 0xc]
call fcn.004056b5
push ebx
push ecx
mov eax, dword [ebp - 0x10]
dec eax
jns 0x40fba8
push 0x306
push 0x402c0c8
push 4
call fcn.00451216
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x40fbc5
push 0x306
push 0x402c0c8
push 1
call fcn.00451216
add esp, 0xc
shl eax, 2
add ebx, eax
mov dword [ebp - 0x24], ebx
push dword [ebp - 0x24]
lea eax, [ebp - 8]
push eax
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x88]
pop eax
pop ebx
pop ecx
jmp 0x40fb73
add esp, 0xc
cmp dword [ebp + 0x10], 0
mov eax, 0
sete al
and eax, 1
xor eax, 1
test eax, eax
je 0x40fc17
push dword [ebp + 0xc]
lea eax, [ebp - 8]
push eax
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x9c]
mov ebx, dword [ebp - 0xc]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x40fc35
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x40fc31
imul eax, dword [ebx]
jmp 0x40fc26
mov ecx, eax
test ecx, ecx
je 0x40fc54
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x40fc4d
push ebx
push eax
call fcn.00451210
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x40fc3b
call fcn.00451210
add esp, 4
mov eax, 0xc4d431
mov dword [ebp - 0xc], eax
lea eax, [ebp - 8]
push eax
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0x2c]
lea eax, [ebp - 8]
push eax
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0xbc]
mov dword [ebp - 0x24], eax
push 0
push 0
push 0
push getpeername
push 0
push 0xc4d99a
push getpeername
push 0
mov eax, dword [ebp - 0x24]
test eax, eax
jne 0x40fcab
mov eax, 0x533de2
push eax
push 3
mov ebx, 0x452b30
call fcn.00451222
add esp, 0x28
mov dword [ebp - 0x28], eax
mov ebx, dword [ebp - 0x24]
test ebx, ebx
je 0x40fcd1
push ebx
call fcn.00451210
add esp, 4
mov eax, dword [ebp - 0x28]
push eax
mov ebx, dword [ebp - 0x14]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x40fcf3
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x40fcef
imul eax, dword [ebx]
jmp 0x40fce4
mov ecx, eax
test ecx, ecx
je 0x40fd12
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x40fd0b
push ebx
push eax
call fcn.00451210
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x40fcf9
call fcn.00451210
add esp, 4
pop eax
mov dword [ebp - 0x14], eax
mov ebx, dword [ebp - 0x14]
call fcn.0040bf5c
xor ecx, ecx
push eax
lea eax, [ebp - 0x10]
mov ebx, eax
pop eax
inc ecx
push ecx
push ebx
mov dword [ebx], ecx
push eax
cmp ecx, eax
jg 0x40fed3
mov ebx, dword [ebp - 0x14]
call fcn.004056b5
push ebx
push ecx
mov eax, dword [ebp - 0x10]
dec eax
jns 0x40fd64
push 0x476
push 0x402c0c8
push 4
call fcn.00451216
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x40fd81
push 0x476
push 0x402c0c8
push 1
call fcn.00451216
add esp, 0xc
shl eax, 2
add ebx, eax
mov dword [ebp - 0x24], ebx
push reloc.OLEAUT32.dll_SysReAllocString
push 0
push 0
push 0
push 0
push 0
push getpeername
push 0
push 0xc4d99d
push getpeername
push 0
mov ebx, dword [ebp - 0x24]
mov eax, dword [ebx]
test eax, eax
jne 0x40fdbc
mov eax, 0x533de2
push eax
push 4
mov ebx, 0x451fa0
call fcn.00451222
add esp, 0x34
mov dword [ebp - 0x2c], eax
cmp dword [ebp - 0x2c], 0xffffffff
jle 0x40fecb
mov ebx, dword [ebp - 0x14]
call fcn.004056b5
push ebx
push ecx
mov eax, dword [ebp - 0x10]
dec eax
jns 0x40fe03
push 0x4f8
push 0x402c0c8
push 4
call fcn.00451216
add esp, 0xc
pop ecx
pop ebx
cmp eax, ecx
jl 0x40fe20
push 0x4f8
push 0x402c0c8
push 1
call fcn.00451216
add esp, 0xc
shl eax, 2
add ebx, eax
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x28], 0
push 0
push dword [ebp - 0x28]
mov dword [ebp - 0x2c], 0
push 0
push dword [ebp - 0x2c]
mov eax, 0xc4d9a8
mov dword [ebp - 0x30], eax
lea eax, [ebp - 0x30]
push eax
mov eax, 0xc4d99d
mov dword [ebp - 0x34], eax
lea eax, [ebp - 0x34]
push eax
push dword [ebp - 0x24]
call fcn.004101e3
mov dword [ebp - 0x38], eax
mov ebx, dword [ebp - 0x34]
test ebx, ebx
je 0x40fe73
push ebx
call fcn.00451210
add esp, 4
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x40fe83
push ebx
call fcn.00451210
add esp, 4
push 0xc4d9aa
push dword [ebp - 0x38]
push 0xc4d99d
push dword [ebp - 0x18]
mov ecx, 4
call fcn.00404e68
add esp, 0x10
mov dword [ebp - 0x3c], eax
mov ebx, dword [ebp - 0x38]
test ebx, ebx
je 0x40feb3
push ebx
call fcn.00451210
add esp, 4
mov eax, dword [ebp - 0x3c]
push eax
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x40fec7
push ebx
call fcn.00451210
add esp, 4
pop eax
mov dword [ebp - 0x18], eax
pop eax
pop ebx
pop ecx
jmp 0x40fd2f
add esp, 0xc
push 0x533de2
push dword [ebp - 0x18]
call fcn.004050d2
add esp, 8
cmp eax, 0
je 0x40ff25
mov eax, dword [ebp - 0x18]
test eax, eax
je 0x40ff0b
push eax
mov ebx, eax
call fcn.004010f7
inc eax
push eax
call fcn.0045120a
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
push eax
mov ebx, dword [0x152cf18]
test ebx, ebx
je 0x40ff1f
push ebx
call fcn.00451210
add esp, 4
pop eax
mov dword [0x152cf18], eax
lea eax, [ebp - 8]
push eax
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0xb8]
mov dword [ebp - 0x24], eax
mov eax, dword [ebp - 0x24]
push eax
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x40ff4d
push ebx
call fcn.00451210
add esp, 4
pop eax
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 8]
push eax
mov eax, dword [esp]
mov eax, dword [eax]
mov eax, dword [eax]
call dword [eax + 0xc]
jmp 0x41004c
cmp dword [ebp + 0x10], 0
mov eax, 0
sete al
test eax, eax
je 0x40ff82
mov eax, 0
jmp 0x40ff87
mov eax, 1
mov dword [ebp - 0x28], eax
push 1
push 1
mov dword [ebp - 0x2c], 0
push 0
lea eax, [ebp - 0x2c]
push eax
mov dword [ebp - 0x30], 0
push 0
lea eax, [ebp - 0x30]
push eax
mov dword [ebp - 0x34], 0
push 0
push dword [ebp - 0x34]
mov dword [ebp - 0x38], 0
push 0
lea eax, [ebp - 0x38]
push eax
push 1
mov eax, 0xc4d9ae
mov dword [ebp - 0x3c], eax
lea eax, [ebp - 0x3c]
push eax
push 1
lea eax, [ebp - 0x20]
push eax
push 1
push 0x152cf18
push 1
push dword [ebp + 0xc]
push 1
push dword [ebp - 0x28]
push dword [ebp + 8]
call fcn.004104a4
mov dword [ebp - 0x40], eax
mov ebx, dword [ebp - 0x3c]
test ebx, ebx
je 0x410004
push ebx
call fcn.00451210
add esp, 4
mov ebx, dword [ebp - 0x38]
test ebx, ebx
je 0x410014
push ebx
call fcn.00451210
add esp, 4
mov ebx, dword [ebp - 0x30]
test ebx, ebx
je 0x410024
push ebx
call fcn.00451210
add esp, 4
mov ebx, dword [ebp - 0x2c]
test ebx, ebx
je 0x410034
push ebx
call fcn.00451210
add esp, 4
mov eax, dword [ebp - 0x40]
push eax
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x410048
push ebx
call fcn.00451210
add esp, 4
pop eax
mov dword [ebp - 0x1c], eax
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x410066
push eax
mov eax, dword [eax + 4]
add eax, 8
push eax
call fcn.0045120a
pop ecx
pop esi
mov edi, eax
rep movsb byte es:[edi], byte [esi]
jmp 0x41007b
push eax
mov ebx, dword [ebp - 4]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x41009a
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x410096
imul eax, dword [ebx]
jmp 0x41008b
mov ecx, eax
test ecx, ecx
je 0x4100b9
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x4100b2
push ebx
push eax
call fcn.00451210
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x4100a0
call fcn.00451210
add esp, 4
mov ebx, dword [ebp - 8]
push ebx
mov eax, dword [ebx]
call dword [eax]
call fcn.00451210
add esp, 4
mov ebx, dword [ebp - 0xc]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x4100ef
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x4100eb
imul eax, dword [ebx]
jmp 0x4100e0
mov ecx, eax
test ecx, ecx
je 0x41010e
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x410107
push ebx
push eax
call fcn.00451210
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x4100f5
call fcn.00451210
add esp, 4
mov ebx, dword [ebp - 0x14]
push ebx
mov ecx, dword [ebx]
add ebx, 4
test ecx, ecx
je 0x410134
mov eax, dword [ebx]
add ebx, 4
dec ecx
je 0x410130
imul eax, dword [ebx]
jmp 0x410125
mov ecx, eax
test ecx, ecx
je 0x410153
push ecx
mov eax, dword [ebx]
test eax, eax
je 0x41014c
push ebx
push eax
call fcn.00451210
add esp, 4
pop ebx
add ebx, 4
pop ecx
dec ecx
jne 0x41013a
call fcn.00451210
add esp, 4
mov ebx, dword [ebp - 0x18]
test ebx, ebx
je 0x41016b
push ebx
call fcn.00451210
add esp, 4
mov ebx, dword [ebp - 0x1c]
test ebx, ebx
je 0x41017b
push ebx
call fcn.00451210
add esp, 4
mov ebx, dword [ebp - 0x20]
test ebx, ebx
je 0x41018b
push ebx
call fcn.00451210
add esp, 4
pop eax
mov esp, ebp
pop ebp
ret 0xc