Function at 0x614840
Capabilities:
Reference http user-agent string
Resolve function by parsing pe exports

Disassembly:
mov ecx, dword [0x99504c]
mov ecx, dword fs:[ecx]
mov ecx, dword [ecx]
lea eax, [esp - 0x120]
cmp eax, dword [ecx + 8]
jbe 0x615433
sub esp, 0x1a0
mov eax, dword [esp + 0x1a4]
mov ecx, dword [eax]
mov edx, dword [ecx + 0x2c]
movzx edx, byte [edx + 0x61]
test dl, dl
jne 0x614888
mov edx, dword [eax + 0xc]
mov ebx, dword [edx + 0xd8]
mov ebp, dword [edx + 0xdc]
xor esi, esi
jmp 0x6148a6
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
add esp, 0x1a0
ret
inc esi
cmp esi, ebp
jge 0x614949
lea edi, [ebx + esi]
cmp byte [edi], 1
jne 0x6148a5
mov ebx, dword [edx + 0xe8]
cmp dword [edx + 0xf4], ebx
jne 0x614900
test ebx, ebx
je 0x6148e3
mov dword [esp + 0xa8], ecx
mov dword [esp + 0x94], ebx
mov edx, dword [edx + 0xe4]
xor ebp, ebp
jmp 0x61498c
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
add esp, 0x1a0
ret
mov dword [esp], ecx
mov byte [esp + 4], 0x2f
call fcn.005e9f50
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x23
lea ecx, [0x7482ee]
mov dword [eax], ecx
lea ecx, [0x7b0bb8]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], eax
add esp, 0x1a0
ret
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
add esp, 0x1a0
ret
mov esi, dword [esp + 0xc4]
lea edx, [esi + 0x10]
mov esi, dword [esp + 0x7c]
lea ebp, [esi + 1]
mov ebx, dword [esp + 0x94]
mov ecx, dword [esp + 0xa8]
mov eax, dword [esp + 0x1a4]
cmp ebp, ebx
jge 0x614bd6
cmp ebp, 5
jge 0x614bd6
mov dword [esp + 0x7c], ebp
mov dword [esp + 0xc4], edx
mov esi, dword [ecx + 0x2c]
mov edi, dword [esi + 0x8c]
mov eax, dword [edx]
mov ebx, dword [edx + 4]
mov ebp, dword [edx + 8]
test edi, edi
jne 0x614a28
mov edx, dword [ecx + 0x90]
mov edi, dword [ecx + 0x94]
mov ecx, dword [ecx + 0x98]
mov dword [esp], esi
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
mov dword [esp + 0x10], edx
mov dword [esp + 0x14], edi
mov dword [esp + 0x18], ecx
call fcn.00621910
mov eax, dword [esp + 0x1c]
test eax, eax
je 0x614966
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.00620350
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x614966
mov ecx, dword [esp + 0xc]
jmp 0x614abf
mov dword [esp + 0x90], ebp
mov dword [esp + 0x8c], ebx
mov dword [esp + 0xc0], eax
mov dword [esp], ecx
call fcn.005ee210
lea edi, [esp + 0x144]
lea esi, [esp + 4]
call fcn.0046952a
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 0x2c]
mov edx, dword [ecx + 0x8c]
mov ecx, dword [edx]
mov dword [esp + 0x88], ecx
mov ebx, dword [esp + 0xc0]
mov dword [esp], ebx
mov ebx, dword [esp + 0x8c]
mov dword [esp + 4], ebx
mov ebx, dword [esp + 0x90]
mov dword [esp + 8], ebx
lea edi, [esp + 0xc]
lea esi, [esp + 0x144]
call fcn.0046952a
mov ecx, dword [esp + 0x88]
call ecx
mov eax, dword [esp + 0x6c]
test eax, eax
jne 0x614bb9
mov ecx, dword [esp + 0x68]
test ecx, ecx
je 0x614966
cmp word [ecx + 0xe], 0x304
jne 0x614966
mov dword [esp + 0xa0], ecx
mov ebx, dword [ecx + 0x18]
mov ebp, dword [ecx + 0x14]
lea edi, [esp + 0xc8]
xor eax, eax
call fcn.004690fb
mov dword [esp + 0xcc], 0
add ebp, 0x7791f700
mov dword [esp + 0xd0], ebp
adc ebx, 0xe
mov dword [esp + 0xd4], ebx
mov ecx, dword [0x966a04]
mov dword [esp + 0xd8], ecx
lea edi, [esp + 0xf0]
lea esi, [esp + 0xc8]
call fcn.004695de
mov ecx, dword [esp + 0xa8]
mov ebx, dword [ecx + 0x2c]
mov ebx, dword [ebx + 8]
test ebx, ebx
jne 0x614b3f
lea ebx, [0x758950]
mov eax, dword [ebx]
mov edx, ebx
call eax
lea edi, [esp + 0x118]
lea esi, [esp]
call fcn.004695de
lea edi, [esp]
lea esi, [esp + 0x118]
call fcn.004695de
lea edi, [esp + 0x14]
lea esi, [esp + 0xf0]
call fcn.004695de
call fcn.0048b2b0
mov eax, dword [esp + 0x2c]
cmp dword [esp + 0x28], 0xf9290000
seta cl
cmp eax, 0x2260f
sete al
setg bl
and eax, ecx
or ebx, eax
test bl, bl
jne 0x614966
mov eax, dword [esp + 0xa0]
movzx ecx, word [eax + 0x12]
mov ebx, dword [0x967b80]
mov ebp, dword [0x967b84]
xor edx, edx
jmp 0x614bf4
mov eax, dword [esp + 0x6c]
mov ecx, dword [esp + 0x70]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], ecx
add esp, 0x1a0
ret
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
add esp, 0x1a0
ret
inc edx
cmp edx, ebp
jge 0x614c02
mov esi, dword [ebx + edx*4]
cmp word [esi], cx
jne 0x614bf3
jmp 0x614c04
xor esi, esi
test esi, esi
je 0x614fad
mov ecx, dword [esi + 0xc]
mov ebx, dword [esp + 0x1a4]
mov ebp, dword [ebx + 0x18]
cmp dword [ebp + 0xc], ecx
jne 0x614966
mov ecx, dword [eax + 0x30]
mov ebp, dword [esp + 0xa8]
mov esi, dword [ebp + 0x2c]
mov edi, dword [esi + 0x48]
test ecx, ecx
cmp edi, 2
jne 0x614c3d
test ecx, ecx
jmp 0x614c44
cmp edi, 4
jne 0x614c4b
test ecx, ecx
jne 0x614c53
jmp 0x614966
test ecx, ecx
je 0x614d16
test edi, edi
je 0x614966
test ecx, ecx
jne 0x614c66
xor edx, edx
jmp 0x614d18
mov dword [esp + 0x90], ecx
mov esi, dword [esi + 8]
test esi, esi
jne 0x614c7a
lea esi, [0x758950]
mov eax, dword [esi]
mov edx, esi
call eax
lea edi, [esp + 0x118]
lea esi, [esp]
call fcn.004695de
lea edi, [esp + 0xdc]
lea esi, [esp + 0x118]
call fcn.004695de
mov eax, dword [esp + 0xa0]
mov ecx, dword [eax + 0x30]
test ecx, ecx
jbe 0x615429
mov ecx, dword [eax + 0x2c]
mov ecx, dword [ecx]
test byte [ecx], al
lea esi, [ecx + 0x16c]
lea edi, [esp + 0x104]
call fcn.004695de
lea edi, [esp]
lea esi, [esp + 0xdc]
call fcn.004695de
lea edi, [esp + 0x14]
lea esi, [esp + 0x104]
call fcn.004695de
call fcn.00489f40
movzx eax, byte [esp + 0x28]
mov ecx, dword [esp + 0x90]
mov ebx, dword [esp + 0x1a4]
mov ebp, dword [esp + 0xa8]
mov edx, eax
mov eax, dword [esp + 0xa0]
jmp 0x614d18
xor edx, edx
test dl, dl
jne 0x614966
test ecx, ecx
je 0x614d38
mov ecx, dword [ebp + 0x2c]
cmp dword [ecx + 0x48], 3
jl 0x614d38
mov ecx, dword [eax + 0x60]
test ecx, ecx
je 0x614966
mov ecx, dword [ebx + 0x18]
mov edx, dword [eax + 0x1c]
mov ebp, dword [eax + 0x20]
mov esi, dword [eax + 0x24]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebp
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
call fcn.0061b8f0
mov eax, dword [esp + 0x20]
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x1c]
mov ebx, dword [esp + 0x1a4]
mov dword [ebx + 0x28], eax
mov dword [ebx + 0x2c], ecx
mov ebp, dword [0x995310]
test ebp, ebp
je 0x614da0
call fcn.00468e70
mov dword [edi], edx
mov ebp, dword [ebx + 0x24]
mov dword [edi + 4], ebp
mov dword [ebx + 0x24], edx
mov ebp, dword [ebx + 0x18]
mov dword [esp], ebp
mov dword [esp + 4], edx
mov dword [esp + 8], eax
mov dword [esp + 0xc], ecx
lea eax, [0x73c048]
mov dword [esp + 0x10], eax
mov dword [esp + 0x14], 0xa
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], 0
call fcn.0061b7d0
mov eax, dword [esp + 0x1a4]
mov ecx, dword [eax + 0x60]
mov edx, dword [eax + 0x64]
mov ebx, dword [eax + 0x18]
mov ebx, dword [ebx + 0xc]
mov ebp, dword [esp + 0x20]
mov dword [esp + 0xac], ebp
mov esi, dword [esp + 0x24]
mov dword [esp + 0x80], esi
mov edi, dword [esp + 0x28]
mov dword [esp + 0x84], edi
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
call fcn.00615440
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0xc]
mov edx, dword [esp + 0x10]
test eax, eax
je 0x614f5d
mov dword [esp + 0x9c], edx
mov dword [esp + 0xbc], ecx
mov dword [esp + 0x78], eax
mov eax, dword [esp + 0x1a4]
mov ecx, dword [eax + 0xc]
mov dword [esp], ecx
call fcn.005ff930
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x614f10
mov eax, dword [esp + 0x78]
mov eax, dword [eax + 0x20]
mov ecx, dword [esp + 0x9c]
mov dword [esp], ecx
call eax
mov eax, dword [esp + 0x1a4]
mov ecx, dword [eax + 0x18]
mov dword [esp], ecx
mov ecx, dword [esp + 0xac]
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 8], ecx
mov ecx, dword [esp + 0x84]
mov dword [esp + 0xc], ecx
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x10], ecx
mov ecx, dword [esp + 0x9c]
mov dword [esp + 0x14], ecx
call fcn.0061bc00
mov eax, dword [esp + 0x1a4]
mov ecx, dword [eax + 0xc]
mov edx, dword [ecx + 0xf4]
mov ebx, dword [esp + 0x7c]
cmp ebx, edx
jae 0x615420
mov edx, dword [ecx + 0xf0]
lea ebp, [ebx + ebx*2]
mov esi, dword [edx + ebp*4 + 4]
mov edi, dword [esp + 0x1c]
mov edx, dword [edx + ebp*4]
cmp edi, esi
jne 0x614f09
mov ebp, dword [esp + 0x18]
xor edi, edi
xor edi, edi
xchg edi, eax
mov byte [esp + 0x75], al
xchg edi, eax
xor edi, edi
jmp 0x615407
xor edx, edx
jmp 0x614fb9
mov eax, dword [esp + 0x10]
mov dword [esp + 0xbc], eax
mov ecx, dword [esp + 0x14]
mov dword [esp + 0xa4], ecx
mov edx, dword [esp + 0xa8]
mov dword [esp], edx
mov byte [esp + 4], 0x50
call fcn.005e9f50
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x1a8], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x1ac], eax
add esp, 0x1a0
ret
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov byte [esp + 4], 0x50
call fcn.005e9f50
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x29
lea ecx, [0x74b0fb]
mov dword [eax], ecx
lea ecx, [0x7b0bb8]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], eax
add esp, 0x1a0
ret
mov ebx, dword [esp + 0x1a4]
jmp 0x614966
cmp edx, 1
jne 0x615396
mov edx, dword [esp + 0xa8]
mov ebp, dword [edx + 0x10]
test ebp, ebp
je 0x615068
movzx ecx, byte [ecx + 0xd4]
test cl, cl
je 0x61505d
test ebx, ebx
jne 0x615052
mov ecx, dword [esp + 0xa0]
movzx ebp, byte [ecx + 0xc]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x61504e
movzx ebp, word [ecx + 0x12]
mov esi, dword [eax + 0x18]
cmp word [esi], bp
jne 0x61504a
mov ebp, dword [ecx + 0x6c]
cmp dword [edx + 0xc8], ebp
je 0x61500f
xor ebp, ebp
jmp 0x615071
mov eax, dword [ecx + 0x68]
mov ebx, dword [edx + 0xc4]
mov dword [esp], eax
mov dword [esp + 4], ebx
mov dword [esp + 8], ebp
call fcn.004034e0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0xa0]
mov edx, dword [esp + 0xa8]
mov ebx, dword [esp + 0x7c]
mov ebp, eax
mov eax, dword [esp + 0x1a4]
jmp 0x615071
xor ebp, ebp
jmp 0x615071
xor ebp, ebp
jmp 0x615071
mov ecx, dword [esp + 0xa0]
xor ebp, ebp
jmp 0x615071
mov ecx, dword [esp + 0xa0]
xor ebp, ebp
jmp 0x615071
mov ecx, dword [esp + 0xa0]
xor ebp, ebp
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x615296
mov byte [eax + 0x16], 1
mov ecx, dword [eax + 0x18]
mov ecx, dword [ecx + 0xc]
mov dword [esp], ecx
call fcn.004e91e0
mov eax, dword [esp + 0x1a4]
mov ecx, dword [eax + 0xc]
mov dword [esp + 0xb8], ecx
mov edx, dword [esp + 8]
mov dword [esp + 0x98], edx
mov ebx, dword [esp + 4]
mov dword [esp + 0xbc], ebx
lea ebp, [0x6ff340]
mov dword [esp], ebp
call fcn.00409e40
lea eax, [0x7b1a64]
mov dword [esp], eax
mov eax, dword [esp + 0xb8]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0xc], eax
call fcn.0060dcd0
mov eax, dword [esp + 0x10]
test eax, eax
jne 0x615379
mov eax, dword [esp + 0x1a4]
mov ecx, dword [eax + 0x18]
mov edx, dword [eax + 0x24]
mov ebx, dword [eax + 0x28]
mov ebp, dword [eax + 0x2c]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], ebx
mov dword [esp + 0xc], ebp
lea ecx, [0x73c705]
mov dword [esp + 0x10], ecx
mov dword [esp + 0x14], 0xb
mov ecx, dword [esp + 0xbc]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x98]
mov dword [esp + 0x1c], ecx
call fcn.0061b7d0
mov eax, dword [esp + 0x1a4]
mov ecx, dword [eax + 0x18]
movzx ecx, word [ecx]
mov word [esp + 0x76], cx
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x24]
mov ebp, dword [esp + 0x28]
lea edi, [esp + 0x12c]
mov esi, eax
xor eax, eax
call fcn.004690fa
mov dword [esp + 0x12c], 1
mov dword [esp + 0x130], 1
movzx eax, word [esp + 0x76]
mov word [esp + 0x140], ax
mov dword [esp + 0x134], edx
mov dword [esp + 0x138], ebx
mov dword [esp + 0x13c], ebp
mov eax, dword [esp + 0xa8]
mov ecx, dword [eax + 0x10]
mov edx, dword [ecx + 8]
mov ebx, dword [ecx + 4]
inc ebx
mov ebp, dword [ecx]
cmp edx, ebx
jae 0x615229
mov dword [esp + 0xb4], ecx
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], edx
mov dword [esp + 0xc], 1
lea eax, [0x717ec0]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x14]
mov edx, dword [esp + 0x18]
mov ebx, dword [esp + 0xb4]
mov dword [ebx + 8], eax
mov eax, dword [0x995310]
test eax, eax
je 0x615213
call fcn.00468e70
mov dword [edi], ecx
mov eax, dword [ebx]
mov dword [edi + 4], eax
mov dword [ebx], ecx
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0x1a4]
mov ebp, ecx
mov ecx, ebx
mov ebx, edx
mov dword [ecx + 4], ebx
mov ecx, dword [0x995310]
lea edx, [ebx + ebx*2]
lea edi, [ebp + edx*8 - 0x18]
test ecx, ecx
je 0x615276
mov dword [esp + 0xb0], edi
lea eax, [0x717ec0]
mov dword [esp], eax
mov dword [esp + 4], edi
lea eax, [esp + 0x12c]
mov dword [esp + 8], eax
call fcn.00411b70
mov eax, dword [esp + 0xa8]
mov esi, dword [esp + 0x1a4]
mov edi, dword [esp + 0xb0]
lea esi, [esp + 0x12c]
call fcn.004695d4
mov ecx, dword [esp + 0xa0]
mov edx, eax
mov ebx, dword [esp + 0x7c]
mov eax, dword [esp + 0x1a4]
mov byte [edx + 0x35], 1
mov ebp, dword [ecx + 0x30]
mov esi, dword [ecx + 0x34]
mov edi, dword [ecx + 0x2c]
mov dword [edx + 0x54], ebp
mov dword [edx + 0x58], esi
mov ebp, dword [0x995310]
test ebp, ebp
je 0x6152c4
mov ebp, edi
call fcn.00468e70
mov dword [edi], ebp
mov esi, dword [edx + 0x50]
mov dword [edi + 4], esi
mov edi, ebp
mov dword [edx + 0x50], edi
mov ebp, dword [ecx + 0x48]
mov esi, dword [ecx + 0x4c]
mov edi, dword [ecx + 0x44]
mov dword [edx + 0x3c], ebp
mov dword [edx + 0x40], esi
mov ebp, dword [0x995310]
test ebp, ebp
je 0x6152f1
mov ebp, edi
call fcn.00468e70
mov dword [edi], ebp
mov esi, dword [edx + 0x38]
mov dword [edi + 4], esi
mov edi, ebp
mov dword [edx + 0x38], edi
mov ebp, dword [ecx + 0x54]
mov esi, dword [ecx + 0x58]
mov edi, dword [ecx + 0x50]
mov dword [edx + 0x48], ebp
mov dword [edx + 0x4c], esi
mov ebp, dword [0x995310]
test ebp, ebp
je 0x61531e
mov ebp, edi
call fcn.00468e70
mov dword [edi], ebp
mov esi, dword [edx + 0x44]
mov dword [edi + 4], esi
mov edi, ebp
mov dword [edx + 0x44], edi
mov ebp, dword [ecx + 0x60]
mov esi, dword [ecx + 0x64]
mov ecx, dword [ecx + 0x5c]
mov dword [edx + 0x6c], ebp
mov dword [edx + 0x70], esi
mov ebp, dword [0x995310]
test ebp, ebp
je 0x615347
call fcn.00468e70
mov dword [edi], ecx
mov ebp, dword [edx + 0x68]
mov dword [edi + 4], ebp
mov dword [edx + 0x68], ecx
mov ecx, dword [eax + 0x10]
mov byte [ecx + 0x68], 1
mov ecx, dword [eax + 0x10]
mov word [ecx + 0x6a], bx
mov byte [eax + 0x15], 1
mov dword [esp + 0x1a8], 0
mov dword [esp + 0x1ac], 0
add esp, 0x1a0
ret
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0x14]
mov dword [esp + 0x1a8], eax
mov dword [esp + 0x1ac], ecx
add esp, 0x1a0
ret
mov eax, dword [esp + 0xa8]
mov dword [esp], eax
mov byte [esp + 4], 0x33
call fcn.005e9f50
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x17
lea ecx, [0x741edb]
mov dword [eax], ecx
lea ecx, [0x7b0bb8]
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1ac], eax
add esp, 0x1a0
ret
movzx eax, byte [edi + edx]
movzx ebx, byte [edi + ebp]
xor eax, ebx
inc edi
movzx ebx, byte [esp + 0x75]
or ebx, eax
mov eax, dword [esp + 0x1a4]
mov byte [esp + 0x75], bl
mov ebx, dword [esp + 0x7c]
cmp edi, esi
jl 0x6153e6
movzx ebp, byte [esp + 0x75]
xchg ebp, eax
movzx eax, al
xchg ebp, eax
lea edx, [ebp - 1]
shr edx, 0x1f
jmp 0x614fb9
mov eax, ebx
mov ecx, edx
call fcn.00468ed0
xor eax, eax
mov ecx, eax
call fcn.00468ed0
nop
call fcn.00467a60
jmp fcn.00614840