Function at 0x645c40
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 0x645f74
sub esp, 0x3c
mov ecx, dword [esp + 0x44]
test ecx, ecx
je 0x645cbf
mov edx, dword [esp + 0x40]
cmp byte [edx], 0x22
jne 0x645c8f
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], 0
mov dword [esp + 0x34], 0
mov dword [esp + 0x38], 0
mov eax, 1
jmp 0x645ce6
mov dword [esp], edx
mov dword [esp + 4], ecx
call fcn.00645b70
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 8]
mov edx, dword [esp + 0xc]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ebx
add esp, 0x3c
ret
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
mov dword [esp + 0x54], 0
add esp, 0x3c
ret
lea eax, [ebx + 1]
cmp ecx, eax
jle 0x645f06
jbe 0x645f6e
movzx ebx, byte [edx + eax]
cmp bl, 0x22
je 0x645ed3
mov dword [esp + 0x24], eax
cmp bl, 0x5c
jne 0x645d5d
lea ebp, [eax + 1]
cmp ecx, ebp
jg 0x645d15
xor ebp, ebp
jmp 0x645d5f
jbe 0x645f67
mov byte [esp + 0x21], bl
movzx ecx, byte [eax + edx + 1]
nop
lea ebx, [0x73e0dd]
mov dword [esp], ebx
mov dword [esp + 4], 0xf
mov dword [esp + 8], ecx
call fcn.004cebd0
mov eax, dword [esp + 0xc]
test eax, eax
setge al
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
movzx ebx, byte [esp + 0x21]
mov ebp, eax
mov eax, dword [esp + 0x24]
jmp 0x645d5f
xor ebp, ebp
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x645e10
lea ebx, [eax + 1]
cmp ecx, ebx
jbe 0x645f60
mov ebp, dword [esp + 0x2c]
movzx esi, byte [eax + edx + 1]
nop
test ebp, ebp
je 0x645d8f
lea edi, [esp + 0x2c]
cmp ebp, edi
je 0x645d9b
jmp 0x645f48
lea ebp, [esp + 0x2c]
mov dword [esp + 0x2c], ebp
lea edi, [esp + 0x2c]
mov ebp, dword [esp + 0x38]
mov eax, dword [esp + 0x34]
inc eax
mov edi, dword [esp + 0x30]
cmp ebp, eax
jae 0x645dff
mov dword [esp + 0x28], ebx
xchg esi, eax
mov byte [esp + 0x23], al
xchg esi, eax
mov dword [esp], edi
mov dword [esp + 4], eax
mov dword [esp + 8], ebp
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov edi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], edi
mov edx, dword [esp + 0x40]
mov ebx, dword [esp + 0x28]
movzx esi, byte [esp + 0x23]
mov eax, ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x34], eax
xchg esi, ebx
mov byte [eax + edi - 1], bl
xchg esi, ebx
jmp 0x645ce3
cmp bl, 0xd
je 0x645eb7
cmp bl, 0xa
je 0x645eb7
mov ebx, dword [esp + 0x2c]
movzx ebp, byte [edx + eax]
nop
test ebx, ebx
je 0x645e3c
lea esi, [esp + 0x2c]
cmp ebx, esi
je 0x645e48
jmp 0x645f30
lea ebx, [esp + 0x2c]
mov dword [esp + 0x2c], ebx
lea esi, [esp + 0x2c]
mov ebx, dword [esp + 0x38]
mov edi, dword [esp + 0x34]
inc edi
mov esi, dword [esp + 0x30]
cmp ebx, edi
jae 0x645ea6
xchg ebp, eax
mov byte [esp + 0x22], al
xchg ebp, eax
mov dword [esp], esi
mov dword [esp + 4], edi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x38], eax
mov dword [esp + 0x30], esi
mov eax, dword [esp + 0x24]
mov ecx, dword [esp + 0x44]
mov edx, dword [esp + 0x40]
movzx ebp, byte [esp + 0x22]
mov dword [esp + 0x34], edi
xchg ebp, eax
mov byte [edi + esi - 1], al
xchg ebp, eax
mov ebx, eax
jmp 0x645ce3
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], ecx
add esp, 0x3c
ret
mov ebx, dword [esp + 0x30]
mov ebp, ebx
neg ebx
mov esi, dword [esp + 0x34]
cmp esi, ebx
ja 0x645f22
mov dword [esp + 0x48], ebp
mov dword [esp + 0x4c], esi
sub ecx, eax
dec ecx
mov ebx, ecx
neg ecx
sar ecx, 0x1f
inc eax
and eax, ecx
add eax, edx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], ebx
add esp, 0x3c
ret
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], edx
mov dword [esp + 0x54], ecx
add esp, 0x3c
ret
test ebp, ebp
je 0x645f2b
call fcn.0045ff10
call fcn.0045ff50
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
lea eax, [0x6f44e0]
mov dword [esp], eax
lea eax, [0x7b028c]
mov dword [esp + 4], eax
call fcn.00438b10
mov eax, ebx
call fcn.00468ed0
mov eax, ebp
call fcn.00468ed0
call fcn.00468ed0
nop
call fcn.00467a60
jmp fcn.00645c40