Function at 0x5c1040
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 0x5c1856
sub esp, 0x48
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
xor eax, eax
xor ecx, ecx
xor edx, edx
jmp 0x5c106d
mov eax, edi
cmp esi, eax
jle 0x5c1423
jbe 0x5c184e
mov dword [esp + 0x2c], eax
mov byte [esp + 0x20], dl
mov dword [esp + 0x24], ecx
movzx edi, byte [ebp + eax]
lea edx, [ebp + eax]
mov dword [esp + 0x34], edx
xchg edi, eax
cmp al, 0x25
xchg edi, eax
jne 0x5c12ab
lea edi, [eax + 2]
cmp esi, edi
jle 0x5c1395
lea edx, [eax + 1]
cmp esi, edx
jbe 0x5c1845
movzx edx, byte [ebp + eax + 1]
lea ecx, [edx - 0x30]
mov byte [esp + 0x23], cl
cmp cl, 9
ja 0x5c10ca
cmp esi, edi
jmp 0x5c10e9
lea ecx, [edx - 0x61]
cmp cl, 5
ja 0x5c10d6
cmp esi, edi
jmp 0x5c10e4
lea ecx, [edx - 0x41]
cmp cl, 5
ja 0x5c1395
cmp esi, edi
movzx ecx, byte [esp + 0x23]
jbe 0x5c183c
movzx edi, byte [ebp + eax + 2]
lea ebp, [edi - 0x30]
xchg ebp, eax
cmp al, 9
xchg ebp, eax
jbe 0x5c111a
lea esi, [edi - 0x61]
xchg esi, eax
cmp al, 5
xchg esi, eax
jbe 0x5c1116
lea esi, [edi - 0x41]
xchg esi, eax
cmp al, 5
xchg esi, eax
ja 0x5c138d
mov esi, dword [esp + 0x50]
cmp ebx, 3
jne 0x5c11a9
cmp cl, 9
jbe 0x5c1161
xchg edi, eax
mov byte [esp + 0x22], al
xchg edi, eax
lea edi, [edx - 0x61]
xchg edi, eax
cmp al, 5
xchg edi, eax
ja 0x5c1144
lea edi, [edx - 0x57]
mov ecx, edi
movzx edi, byte [esp + 0x22]
jmp 0x5c1161
lea edi, [edx - 0x41]
xchg edi, eax
cmp al, 5
xchg edi, eax
ja 0x5c115a
lea edi, [edx - 0x37]
mov ecx, edi
movzx edi, byte [esp + 0x22]
jmp 0x5c1161
movzx edi, byte [esp + 0x22]
xor ecx, ecx
cmp cl, 8
jae 0x5c11a4
lea ecx, [eax + 3]
cmp esi, ecx
jb 0x5c1835
cmp eax, ecx
ja 0x5c1830
mov esi, dword [esp + 0x34]
cmp word [esi], 0x3225
jne 0x5c1321
mov esi, dword [esp + 0x4c]
lea esi, [esi + eax + 2]
cmp byte [esi], 0x35
jne 0x5c131d
movzx ecx, byte [esp + 0x23]
mov esi, dword [esp + 0x50]
jmp 0x5c11a9
movzx ecx, byte [esp + 0x23]
cmp ebx, 4
jne 0x5c128d
cmp cl, 9
ja 0x5c11be
xchg ebp, eax
cmp al, 9
xchg ebp, eax
jmp 0x5c11ec
lea ecx, [edx - 0x61]
cmp cl, 5
ja 0x5c11d0
lea ecx, [edx - 0x57]
xchg ebp, eax
cmp al, 9
xchg ebp, eax
jmp 0x5c11ec
lea ecx, [edx - 0x41]
cmp cl, 5
ja 0x5c11e2
lea ecx, [edx - 0x37]
xchg ebp, eax
cmp al, 9
xchg ebp, eax
jmp 0x5c11ec
xchg ebp, eax
cmp al, 9
xchg ebp, eax
mov ecx, 0
jbe 0x5c120e
lea ebp, [edi - 0x61]
xchg ebp, eax
cmp al, 5
xchg ebp, eax
ja 0x5c11fd
lea ebp, [edi - 0x57]
jmp 0x5c120e
lea ebp, [edi - 0x41]
xchg ebp, eax
cmp al, 5
xchg ebp, eax
ja 0x5c120c
lea ebp, [edi - 0x37]
jmp 0x5c120e
xor ebp, ebp
shl ecx, 4
lea edi, [eax + 3]
or ebp, ecx
cmp esi, edi
jb 0x5c1827
cmp eax, edi
ja 0x5c1820
mov edi, dword [esp + 0x34]
cmp word [edi], 0x3225
je 0x5c1239
mov ecx, edi
mov edi, dword [esp + 0x4c]
jmp 0x5c1248
mov ecx, edi
mov edi, dword [esp + 0x4c]
lea edx, [edi + eax + 2]
cmp byte [edx], 0x35
je 0x5c1282
xchg ebp, eax
cmp al, 0x20
xchg ebp, eax
jne 0x5c1253
xor edx, edx
jmp 0x5c1284
xchg ebp, eax
mov byte [esp], al
xchg ebp, eax
mov dword [esp + 4], 3
call fcn.005c0ec0
movzx eax, byte [esp + 8]
mov ecx, dword [esp + 0x34]
mov ebx, dword [esp + 0x54]
mov esi, dword [esp + 0x50]
mov edi, dword [esp + 0x4c]
mov edx, eax
mov eax, dword [esp + 0x2c]
jmp 0x5c1284
xor edx, edx
test dl, dl
je 0x5c1291
jmp 0x5c1357
mov edi, dword [esp + 0x4c]
mov ebp, dword [esp + 0x24]
lea ecx, [ebp + 1]
lea ebp, [eax + 3]
mov edi, ebp
movzx edx, byte [esp + 0x20]
mov ebp, dword [esp + 0x4c]
jmp 0x5c106b
xchg edi, eax
cmp al, 0x2b
xchg edi, eax
jne 0x5c12c0
lea edi, [eax + 1]
cmp ebx, 6
sete dl
jmp 0x5c106b
cmp ebx, 3
je 0x5c12ca
cmp ebx, 4
jne 0x5c1304
xchg edi, eax
cmp al, 0x80
xchg edi, eax
jb 0x5c12d5
xor edi, edi
jmp 0x5c1306
xchg edi, eax
mov byte [esp], al
xchg edi, eax
mov dword [esp + 4], ebx
call fcn.005c0ec0
movzx eax, byte [esp + 8]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
mov ebx, dword [esp + 0x54]
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
mov edi, eax
mov eax, dword [esp + 0x2c]
jmp 0x5c1306
xor edi, edi
xchg edi, eax
test al, al
xchg edi, eax
jne 0x5c13e2
lea edi, [eax + 1]
movzx edx, byte [esp + 0x20]
jmp 0x5c106b
mov esi, dword [esp + 0x34]
mov dword [esp], esi
mov dword [esp + 4], 3
call fcn.00409d40
mov eax, dword [esp + 8]
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
lea ecx, [0x7b1524]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
add esp, 0x48
ret
mov dword [esp], ecx
mov dword [esp + 4], 3
call fcn.00409d40
mov eax, dword [esp + 8]
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
lea ecx, [0x7b1524]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
add esp, 0x48
ret
mov ebp, dword [esp + 0x4c]
mov esi, dword [esp + 0x50]
sub esi, eax
mov ecx, esi
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and eax, esi
add eax, ebp
cmp ecx, 3
jle 0x5c13b0
mov ecx, 3
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00409d40
mov eax, dword [esp + 8]
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
lea ecx, [0x7b1524]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
add esp, 0x48
ret
lea ecx, [eax + 1]
cmp eax, ecx
ja 0x5c181b
mov dword [esp], edx
mov dword [esp + 4], 1
call fcn.00409d40
mov eax, dword [esp + 8]
mov dword [esp + 0x58], 0
mov dword [esp + 0x5c], 0
lea ecx, [0x7b1538]
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], eax
add esp, 0x48
ret
test ecx, ecx
jne 0x5c1447
test dl, dl
jne 0x5c1447
mov dword [esp + 0x58], ebp
mov dword [esp + 0x5c], esi
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
add esp, 0x48
ret
mov dword [esp + 0x38], 0
mov dword [esp + 0x3c], 0
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
lea eax, [esp + 0x38]
mov dword [esp], eax
shl ecx, 1
sub esi, ecx
mov dword [esp + 4], esi
call fcn.004cbd10
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x4c]
xor ebx, ebx
jmp 0x5c148c
inc ebx
cmp eax, ebx
jle 0x5c1766
jbe 0x5c1812
movzx ebp, byte [edx + ebx]
xchg ebp, eax
cmp al, 0x25
xchg ebp, eax
jne 0x5c15b7
lea ebp, [ebx + 1]
cmp eax, ebp
jbe 0x5c1809
movzx ebp, byte [edx + ebx + 1]
lea esi, [ebp - 0x30]
xchg esi, eax
cmp al, 9
xchg esi, eax
jbe 0x5c14e3
lea esi, [ebp - 0x61]
xchg esi, eax
cmp al, 5
xchg esi, eax
ja 0x5c14d2
lea esi, [ebp - 0x57]
jmp 0x5c14e3
lea esi, [ebp - 0x41]
xchg esi, eax
cmp al, 5
xchg esi, eax
ja 0x5c14e1
lea esi, [ebp - 0x37]
jmp 0x5c14e3
xor esi, esi
lea ebp, [ebx + 2]
cmp eax, ebp
jbe 0x5c1800
movzx ebx, byte [edx + ebx + 2]
lea edi, [ebx - 0x30]
xchg edi, eax
cmp al, 9
xchg edi, eax
jbe 0x5c151d
lea edi, [ebx - 0x61]
xchg edi, eax
cmp al, 5
xchg edi, eax
ja 0x5c150c
lea edi, [ebx - 0x57]
jmp 0x5c151d
lea edi, [ebx - 0x41]
xchg edi, eax
cmp al, 5
xchg edi, eax
ja 0x5c151b
lea edi, [ebx - 0x37]
jmp 0x5c151d
xor edi, edi
shl esi, 4
mov ebx, dword [esp + 0x38]
or edi, esi
nop
test ebx, ebx
je 0x5c1538
lea esi, [esp + 0x38]
cmp ebx, esi
je 0x5c1540
jmp 0x5c17e8
lea ebx, [esp + 0x38]
mov dword [esp + 0x38], ebx
mov ebx, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
inc esi
mov ecx, dword [esp + 0x3c]
cmp ebx, esi
jae 0x5c15a2
mov dword [esp + 0x30], ebp
xchg edi, eax
mov byte [esp + 0x21], al
xchg edi, eax
mov dword [esp], ecx
mov dword [esp + 4], esi
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov esi, dword [esp + 0x18]
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov ebp, dword [esp + 0x30]
movzx edi, byte [esp + 0x21]
mov dword [esp + 0x40], esi
xchg edi, eax
mov byte [esi + ecx - 1], al
xchg edi, eax
mov ecx, dword [esp + 0x54]
mov ebx, ebp
jmp 0x5c148b
mov dword [esp + 0x28], ebx
xchg ebp, eax
cmp al, 0x2b
xchg ebp, eax
jne 0x5c16d7
cmp ecx, 6
jne 0x5c1653
mov ebp, dword [esp + 0x38]
nop
nop
test ebp, ebp
je 0x5c15e6
lea esi, [esp + 0x38]
cmp ebp, esi
je 0x5c15ee
jmp 0x5c17d0
lea ebp, [esp + 0x38]
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
inc esi
mov edi, dword [esp + 0x3c]
cmp ebp, esi
jae 0x5c1645
mov dword [esp], edi
mov dword [esp + 4], esi
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 esi, dword [esp + 0x18]
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x40], esi
mov byte [esi + edi - 1], 0x20
jmp 0x5c148b
mov ebp, dword [esp + 0x38]
nop
nop
test ebp, ebp
je 0x5c166a
lea esi, [esp + 0x38]
cmp ebp, esi
je 0x5c1672
jmp 0x5c17b8
lea ebp, [esp + 0x38]
mov dword [esp + 0x38], ebp
mov ebp, dword [esp + 0x44]
mov esi, dword [esp + 0x40]
inc esi
mov edi, dword [esp + 0x3c]
cmp ebp, esi
jae 0x5c16c9
mov dword [esp], edi
mov dword [esp + 4], esi
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 esi, dword [esp + 0x18]
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], edi
mov eax, dword [esp + 0x50]
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x28]
mov dword [esp + 0x40], esi
mov byte [esi + edi - 1], 0x2b
jmp 0x5c148b
mov esi, dword [esp + 0x38]
nop
test esi, esi
je 0x5c16ed
lea edi, [esp + 0x38]
cmp esi, edi
je 0x5c16f5
jmp 0x5c17a0
lea esi, [esp + 0x38]
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x44]
mov edi, dword [esp + 0x40]
inc edi
mov ecx, dword [esp + 0x3c]
cmp esi, edi
jae 0x5c1753
xchg ebp, eax
mov byte [esp + 0x23], al
xchg ebp, eax
mov dword [esp], ecx
mov dword [esp + 4], edi
mov dword [esp + 8], esi
mov dword [esp + 0xc], 1
lea eax, [0x6f4820]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov edi, dword [esp + 0x18]
mov dword [esp + 0x44], eax
mov dword [esp + 0x3c], ecx
mov eax, dword [esp + 0x50]
mov edx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x28]
movzx ebp, byte [esp + 0x23]
mov dword [esp + 0x40], edi
xchg ebp, eax
mov byte [edi + ecx - 1], al
xchg ebp, eax
mov ecx, dword [esp + 0x54]
jmp 0x5c148b
mov eax, dword [esp + 0x3c]
mov ecx, eax
neg eax
mov edx, dword [esp + 0x40]
cmp edx, eax
ja 0x5c1792
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], edx
mov dword [esp + 0x60], 0
mov dword [esp + 0x64], 0
add esp, 0x48
ret
test ecx, ecx
je 0x5c179b
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
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 ecx, eax
mov eax, ebp
call fcn.00468ed0
mov ecx, eax
mov eax, ebp
call fcn.00468ed0
mov ecx, eax
mov eax, ebx
call fcn.00468ed0
call fcn.00468f30
mov ecx, edi
call fcn.00468f30
mov ecx, edi
mov edx, esi
call fcn.00468ef0
call fcn.00468f30
mov edx, esi
call fcn.00468ef0
mov eax, edi
mov ecx, esi
call fcn.00468ed0
mov eax, edx
mov ecx, esi
call fcn.00468ed0
mov ecx, esi
call fcn.00468ed0
nop
call fcn.00467a60
jmp fcn.005c1040