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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
cmp esp, dword [ecx + 8]
jbe 0x56b65d
sub esp, 0x28
mov eax, dword [esp + 0x34]
mov dword [esp], eax
mov ecx, dword [esp + 0x38]
mov dword [esp + 4], ecx
mov byte [esp + 8], 0x3a
call fcn.00580f70
mov ecx, dword [esp + 0xc]
test ecx, ecx
jge 0x56b4e6
mov eax, dword [esp + 0x38]
cmp eax, 3
jg 0x56b3f6
cmp eax, 2
jne 0x56b350
mov ecx, dword [esp + 0x34]
cmp word [ecx], 0x7069
jne 0x56b316
movzx edx, byte [esp + 0x3c]
test dl, dl
jne 0x56b2dc
mov dword [esp + 0x40], ecx
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
add esp, 0x28
ret
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004084f0
mov eax, dword [esp + 8]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
lea ecx, [0x98b470]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
add esp, 0x28
ret
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.004084f0
mov eax, dword [esp + 8]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
lea ecx, [0x98b470]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
add esp, 0x28
ret
cmp eax, 3
je 0x56b35b
mov ecx, dword [esp + 0x34]
jmp 0x56b316
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0x83f75f]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 3
call fcn.00402300
mov eax, dword [esp + 0x10]
test eax, eax
jg 0x56b3c2
mov eax, dword [esp + 0x34]
movzx ecx, word [eax]
cmp cx, 0x7069
jne 0x56b3a9
cmp byte [eax + 2], 0x34
jne 0x56b3a4
mov ecx, eax
mov eax, dword [esp + 0x38]
jmp 0x56b2af
cmp cx, 0x7069
jne 0x56b3bc
cmp byte [eax + 2], 0x36
jne 0x56b3bc
mov ecx, eax
mov eax, dword [esp + 0x38]
jmp 0x56b2af
mov eax, dword [esp + 0x38]
jmp 0x56b355
mov eax, dword [esp + 0x34]
cmp word [eax], 0x6374
jne 0x56b3de
cmp byte [eax + 2], 0x70
jne 0x56b3de
mov ecx, eax
mov eax, dword [esp + 0x38]
jmp 0x56b2b8
cmp word [eax], 0x6475
jne 0x56b3bc
cmp byte [eax + 2], 0x70
jne 0x56b3bc
mov ecx, eax
mov eax, dword [esp + 0x38]
jmp 0x56b2b8
cmp eax, 4
je 0x56b466
cmp eax, 8
jne 0x56b422
mov ecx, dword [esp + 0x34]
cmp dword [ecx], 0x78696e75
jne 0x56b316
cmp dword [ecx + 4], 0x6d617267
je 0x56b2b8
jmp 0x56b316
cmp eax, 0xa
je 0x56b430
mov ecx, dword [esp + 0x34]
jmp 0x56b316
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
lea edx, [0x84187d]
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00402420
movzx eax, byte [esp + 0xc]
test al, al
je 0x56b460
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
jmp 0x56b2b8
mov eax, dword [esp + 0x38]
jmp 0x56b427
mov ecx, dword [esp + 0x34]
mov dword [esp], ecx
mov dword [esp + 4], eax
lea edx, [0x83fad0]
mov dword [esp + 8], edx
mov dword [esp + 0xc], 4
call fcn.00402300
mov eax, dword [esp + 0x10]
test eax, eax
jg 0x56b4b7
mov eax, dword [esp + 0x34]
cmp dword [eax], 0x34706374
je 0x56b3d3
cmp dword [eax], 0x36706374
je 0x56b3d3
mov ecx, eax
mov eax, dword [esp + 0x38]
jmp 0x56b316
mov eax, dword [esp + 0x34]
cmp dword [eax], 0x34706475
je 0x56b3eb
cmp dword [eax], 0x36706475
je 0x56b3eb
cmp dword [eax], 0x78696e75
jne 0x56b4ac
mov ecx, eax
mov eax, dword [esp + 0x38]
jmp 0x56b2b8
mov edx, dword [esp + 0x38]
cmp ecx, edx
ja 0x56b657
cmp ecx, 2
jne 0x56b61a
mov ebx, dword [esp + 0x34]
cmp word [ebx], 0x7069
jne 0x56b5e0
lea eax, [ecx + 1]
cmp eax, edx
ja 0x56b650
mov dword [esp + 0x20], ecx
sub edx, eax
mov dword [esp + 0x1c], edx
mov ecx, edx
neg edx
sar edx, 0x1f
and eax, edx
add eax, ebx
mov dword [esp + 0x24], eax
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.00580aa0
mov eax, dword [esp + 8]
mov ecx, dword [esp + 0xc]
movzx edx, byte [esp + 0x10]
test dl, dl
je 0x56b5d7
mov edx, dword [esp + 0x1c]
cmp ecx, edx
je 0x56b5d3
mov eax, dword [esp + 0x2c]
mov dword [esp], eax
mov eax, dword [esp + 0x30]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov dword [esp + 0xc], edx
call fcn.0057c190
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
test ecx, ecx
jne 0x56b5af
mov eax, dword [esp + 0x34]
mov dword [esp + 0x40], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x4c], 0
mov dword [esp + 0x50], 0
add esp, 0x28
ret
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
add esp, 0x28
ret
mov edx, eax
jmp 0x56b587
mov edx, dword [esp + 0x1c]
jmp 0x56b557
mov dword [esp], ebx
mov dword [esp + 4], edx
call fcn.004084f0
mov eax, dword [esp + 8]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
lea ecx, [0x98b470]
mov dword [esp + 0x4c], ecx
mov dword [esp + 0x50], eax
add esp, 0x28
ret
cmp ecx, 3
jne 0x56b64a
mov ebx, dword [esp + 0x34]
movzx ebp, word [ebx]
cmp bp, 0x7069
jne 0x56b63c
cmp byte [ebx + 2], 0x34
je 0x56b50a
cmp bp, 0x7069
jne 0x56b5e0
cmp byte [ebx + 2], 0x36
je 0x56b50a
jmp 0x56b5e0
mov ebx, dword [esp + 0x34]
jmp 0x56b5e0
mov ecx, edx
call fcn.00459e70
call fcn.00459e30
nop
call fcn.00458550
jmp fcn.0056b250