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

Disassembly:
mov ecx, dword [0x99504c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x628070
sub esp, 0x28
mov ebx, dword [esp + 0x2c]
movzx ebp, word [ebx]
test bp, 0x40
je 0x627cf2
mov esi, dword [esp + 0x48]
test esi, esi
je 0x627c66
mov eax, ebx
mov ebx, dword [esp + 0x44]
cmp byte [ebx], 0x3f
jne 0x627c62
dec esi
mov ecx, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, 1
add ebx, esi
xor ebp, 0x20
jmp 0x627c6e
mov ecx, esi
jmp 0x627c6e
mov eax, ebx
mov ecx, esi
mov ebx, dword [esp + 0x44]
mov edx, dword [esp + 0x50]
test edx, edx
je 0x627cfc
mov eax, edx
sub eax, ecx
cmp edx, eax
jb 0x628068
mov dword [esp + 0x14], eax
lea eax, [0x70b8e0]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x22
lea ecx, [0x747de2]
mov dword [eax], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x627cc2
mov ecx, dword [esp + 0x4c]
jmp 0x627ccd
call fcn.00468e60
mov ecx, dword [esp + 0x4c]
mov dword [edi], ecx
mov dword [eax + 8], ecx
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
lea ecx, [0x7b14e8]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
add esp, 0x28
ret
mov eax, ebx
mov ecx, dword [esp + 0x48]
mov ebx, dword [esp + 0x44]
mov esi, dword [eax + 8]
test esi, esi
jne 0x627d7f
mov edx, dword [esp + 0x40]
mov eax, edx
sub eax, ecx
cmp edx, eax
jb 0x628061
mov dword [esp + 0x14], eax
lea eax, [0x70b8e0]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x27
lea ecx, [0x74a412]
mov dword [eax], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x627d4f
mov ecx, dword [esp + 0x3c]
jmp 0x627d5a
call fcn.00468e60
mov ecx, dword [esp + 0x3c]
mov dword [edi], ecx
mov dword [eax + 8], ecx
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
lea ecx, [0x7b14e8]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
add esp, 0x28
ret
mov edx, dword [eax + 4]
mov edx, dword [edx + esi*4 - 4]
cmp byte [edx], 0x80
jb 0x627e07
mov edx, dword [esp + 0x40]
mov eax, edx
sub eax, ecx
cmp edx, eax
jb 0x62805a
mov dword [esp + 0x14], eax
lea eax, [0x70b8e0]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x27
lea ecx, [0x74a412]
mov dword [eax], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x627dd7
mov ecx, dword [esp + 0x3c]
jmp 0x627de2
call fcn.00468e60
mov ecx, dword [esp + 0x3c]
mov dword [edi], ecx
mov dword [eax + 8], ecx
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
lea ecx, [0x7b14e8]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
add esp, 0x28
ret
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], ebx
mov dword [esp + 0x10], esi
mov word [esp + 0xe], bp
mov edi, dword [eax + 0x10]
nop
test edi, edi
je 0x627e83
mov dword [esp + 0x1c], edi
mov ecx, dword [0x995310]
mov ebx, dword [edi + 0x10]
test ecx, ecx
je 0x627e73
mov dword [esp + 0x20], ebx
mov ecx, edi
call fcn.00468e70
mov dword [edi], ebx
mov edx, dword [eax + 0x10]
mov dword [edi + 4], edx
lea edx, [0x7268c0]
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.00411b40
mov eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0x20]
movzx ebp, word [esp + 0xe]
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x1c]
mov dword [eax + 0x10], ebx
xor eax, eax
call fcn.004690f1
mov edi, dword [esp + 0x1c]
jmp 0x627ea9
lea eax, [0x7268c0]
mov dword [esp], eax
call fcn.0040c500
mov edi, dword [esp + 4]
mov eax, dword [esp + 0x2c]
inc dword [eax + 0x2c]
mov edx, dword [esp + 0x18]
movzx ebp, word [esp + 0xe]
mov esi, dword [esp + 0x10]
movzx ebx, byte [esp + 0x30]
mov byte [edi], bl
mov eax, ebx
mov ebx, dword [esp + 0x34]
mov dword [edi + 0x28], ebx
mov ecx, ebx
mov ebx, dword [esp + 0x38]
mov dword [edi + 0x2c], ebx
mov word [edi + 2], bp
mov dword [edi + 8], 1
mov dword [edi + 0xc], 1
mov ebp, dword [0x995310]
lea ebx, [edi + 0x10]
test ebp, ebp
je 0x627ef6
mov ebp, edi
call fcn.00468e70
mov dword [edi], ebx
mov ecx, dword [ebp + 4]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x34]
mov edi, ebp
mov dword [edi + 4], ebx
mov ebx, dword [0x995310]
mov ebp, dword [edi + 4]
test ebx, ebx
je 0x627f1b
mov ebx, edi
call fcn.00468e70
mov dword [edi], edx
mov ecx, dword [ebp]
mov dword [edi + 4], ecx
mov ecx, dword [esp + 0x34]
mov edi, ebx
mov dword [ebp], edx
lea edx, [esi - 1]
mov ebx, dword [esp + 0x2c]
mov ebp, dword [ebx + 8]
cmp ebp, edx
jbe 0x628051
mov edx, dword [0x995310]
mov ebp, dword [ebx + 4]
test edx, edx
je 0x627f4f
mov edx, edi
call fcn.00468e70
mov dword [edi], edx
mov ecx, dword [ebp + esi*4 - 4]
mov dword [edi + 4], ecx
mov edi, edx
mov dword [esp + 0x1c], edi
mov dword [ebp + esi*4 - 4], edi
mov dword [esp], ebx
mov dword [esp + 4], edi
call fcn.00626c50
movzx eax, byte [esp + 0x30]
cmp al, 0x11
jne 0x628028
mov eax, dword [esp + 0x34]
cmp eax, 2
jge 0x627f87
mov eax, dword [esp + 0x38]
cmp eax, 2
jl 0x628028
mov eax, dword [esp + 0x1c]
mov dword [esp], eax
mov dword [esp + 4], 0x3e8
call fcn.00628080
movzx eax, byte [esp + 8]
test al, al
jne 0x628028
mov ecx, dword [esp + 0x40]
mov eax, dword [esp + 0x14]
mov edx, ecx
sub ecx, eax
cmp edx, ecx
jb 0x62804c
mov dword [esp + 0x14], ecx
lea eax, [0x70b8e0]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x14
lea ecx, [0x7405ce]
mov dword [eax], ecx
mov ecx, dword [esp + 0x14]
mov dword [eax + 0xc], ecx
mov ecx, dword [0x995310]
test ecx, ecx
jne 0x627ff8
mov ecx, dword [esp + 0x3c]
jmp 0x628003
call fcn.00468e60
mov ecx, dword [esp + 0x3c]
mov dword [edi], ecx
mov dword [eax + 8], ecx
mov dword [esp + 0x54], 0
mov dword [esp + 0x58], 0
lea ecx, [0x7b14e8]
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], eax
add esp, 0x28
ret
mov eax, dword [esp + 0x24]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
mov dword [esp + 0x58], eax
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
add esp, 0x28
ret
call fcn.00468ef0
mov eax, edx
mov ecx, ebp
call fcn.00468ed0
mov ecx, eax
call fcn.00468ef0
mov ecx, eax
call fcn.00468ef0
mov ecx, eax
call fcn.00468ef0
nop
call fcn.00467a60
jmp fcn.00627c10