Function at 0x622560
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 - 0x94]
cmp eax, dword [ecx + 8]
jbe 0x623276
sub esp, 0x114
lea edi, [esp + 0x130]
xor eax, eax
call fcn.004690f1
lea edi, [esp + 0xd8]
call fcn.004690f1
mov ecx, dword [esp + 0x11c]
mov edx, dword [esp + 0x120]
mov ebx, dword [esp + 0x118]
xor ebp, ebp
xor esi, esi
xor edi, edi
jmp 0x6225cb
mov edx, ebx
mov ebx, dword [esp + 0xc0]
mov esi, edi
mov edi, ebp
mov ebp, ecx
mov ecx, dword [esp + 0x38]
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], edi
mov dword [esp + 0x64], ebp
mov dword [esp], ebx
mov dword [esp + 4], ecx
mov dword [esp + 8], edx
call fcn.005bd8c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test eax, eax
je 0x6227c9
mov dword [esp + 0x3c], ebx
mov dword [esp + 0x38], edx
mov dword [esp + 0xc0], ecx
cmp dword [eax + 4], 0xb
jne 0x622725
mov dword [esp + 0x84], eax
mov ecx, dword [eax]
mov dword [esp], ecx
lea ecx, [0x73c726]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xb
call fcn.004034e0
movzx eax, byte [esp + 0xc]
test al, al
je 0x62270f
mov eax, dword [esp + 0xe0]
mov ecx, dword [esp + 0xdc]
inc ecx
mov edx, dword [esp + 0xd8]
mov ebx, dword [esp + 0x84]
mov ebp, dword [ebx + 0xc]
mov esi, dword [ebx + 0x10]
mov ebx, dword [ebx + 0x14]
cmp eax, ecx
jae 0x6226cc
mov dword [esp + 0x34], ebx
mov dword [esp + 0x30], esi
mov dword [esp + 0xbc], ebp
mov dword [esp], edx
mov dword [esp + 4], ecx
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
lea eax, [0x6e9a40]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov edx, dword [esp + 0x14]
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0xe0], eax
mov dword [esp + 0xd8], edx
mov ebx, dword [esp + 0x34]
mov ebp, dword [esp + 0xbc]
mov esi, dword [esp + 0x30]
mov dword [esp + 0xdc], ecx
lea eax, [ecx + ecx*2]
mov dword [edx + eax*4 - 8], esi
mov dword [edx + eax*4 - 4], ebx
mov ecx, dword [0x995310]
test ecx, ecx
je 0x6226f6
call fcn.00468e70
mov dword [edi], ebp
mov ecx, dword [edx + eax*4 - 0xc]
mov dword [edi + 4], ecx
mov dword [edx + eax*4 - 0xc], ebp
mov ebx, dword [esp + 0x3c]
mov edi, dword [esp + 0x24]
mov ebp, dword [esp + 0x20]
mov ecx, dword [esp + 0x64]
jmp 0x6225b8
mov eax, dword [esp + 0x84]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov ebp, dword [esp + 0x20]
inc ebp
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x24]
cmp edi, ebp
jae 0x622796
mov dword [esp + 0x34], eax
mov dword [esp + 0xb8], esi
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x6f44e0]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x38]
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x64], ebp
mov edi, esi
mov esi, dword [esp + 0xb8]
mov ebp, eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x64]
lea edx, [ecx + ebp*8 - 4]
mov dword [edx], eax
mov eax, dword [0x995310]
lea edx, [ecx + ebp*8 - 8]
test eax, eax
je 0x6227c2
mov eax, edi
call fcn.00468e70
mov dword [edi], esi
mov ebx, dword [edx]
mov dword [edi + 4], ebx
mov ebx, dword [esp + 0x3c]
mov edi, eax
mov dword [edx], esi
jmp 0x6225b8
mov edx, dword [esp + 0xdc]
test edx, edx
je 0x6227f8
mov eax, dword [esp + 0x128]
mov ecx, dword [esp + 0x12c]
mov edx, dword [esp + 0x124]
xor ebx, ebx
mov ebp, dword [esp + 0x64]
mov esi, dword [esp + 0x24]
jmp 0x6229d7
mov edx, dword [esp + 0x20]
test edx, edx
je 0x622963
cmp edx, 1
jne 0x6228b1
mov ebx, dword [esp + 0x64]
mov ecx, dword [ebx + 4]
cmp ecx, 0xb
jl 0x622853
lea eax, [ecx - 0xb]
cmp ecx, eax
jb 0x6229bb
mov eax, dword [ebx]
lea eax, [ecx + eax - 0xb]
mov dword [esp], eax
lea eax, [0x73c66b]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xb
call fcn.004034e0
movzx eax, byte [esp + 0xc]
mov edx, dword [esp + 0x20]
mov ebx, dword [esp + 0x64]
jmp 0x622855
xor eax, eax
test al, al
je 0x6228b5
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0xb4], eax
mov dword [eax + 4], 0x7c
lea ecx, [0x752c9d]
mov dword [eax], ecx
lea edi, [esp + 0x130]
xor eax, eax
call fcn.004690f1
lea eax, [0x7b0bb8]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0xb4]
mov dword [esp + 0x170], eax
add esp, 0x114
ret
mov ebx, dword [esp + 0x64]
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp], ebx
mov dword [esp + 4], edx
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
call fcn.00409dc0
mov eax, dword [esp + 0xc]
lea ecx, [0x6ea2c0]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], eax
lea eax, [0x752c28]
mov dword [esp], eax
mov dword [esp + 4], 0x75
lea eax, [esp + 0xc4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004c1f50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x80], ecx
lea edi, [esp + 0x130]
mov edx, eax
xor eax, eax
call fcn.004690f1
mov dword [esp + 0x16c], edx
mov eax, dword [esp + 0x80]
mov dword [esp + 0x170], eax
add esp, 0x114
ret
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0xb0], eax
mov dword [eax + 4], 0x35
lea ecx, [0x74ecfa]
mov dword [eax], ecx
lea edi, [esp + 0x130]
xor eax, eax
call fcn.004690f1
lea eax, [0x7b0bb8]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0xb0]
mov dword [esp + 0x170], eax
add esp, 0x114
ret
call fcn.00468f30
mov dword [edx], esi
mov eax, dword [esp + 0x3c]
mov ecx, ebx
mov edx, dword [esp + 0xc0]
mov ebx, ebp
mov ebp, dword [esp + 0x64]
mov esi, edi
mov dword [esp + 0x24], esi
mov dword [esp + 0x20], ebx
mov dword [esp + 0x64], ebp
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ecx
call fcn.005bd8c0
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x18]
test eax, eax
je 0x6230a9
mov dword [esp + 0x74], eax
mov dword [esp + 0x3c], edx
mov dword [esp + 0x38], ebx
mov dword [esp + 0xc0], ecx
cmp dword [eax + 4], 0xb
je 0x622a28
xor ebp, ebp
jmp 0x622a5e
mov ecx, dword [eax]
mov dword [esp], ecx
lea ecx, [0x73c66b]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xb
call fcn.004034e0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
mov ebp, eax
mov eax, dword [esp + 0x74]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x622a6b
mov ebp, 1
jmp 0x622abc
mov ebp, dword [eax + 4]
cmp ebp, 0xc
jge 0x622a77
xor ebp, ebp
jmp 0x622abc
lea esi, [ebp - 0xc]
cmp ebp, esi
jb 0x62326c
mov ecx, dword [eax]
lea ecx, [ebp + ecx - 0xc]
mov dword [esp], ecx
lea ecx, [0x73cd6e]
mov dword [esp + 4], ecx
mov dword [esp + 8], 0xc
call fcn.004034e0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
mov ebp, eax
mov eax, dword [esp + 0x74]
xchg ebp, eax
test al, al
xchg ebp, eax
jne 0x622b6c
mov ebp, dword [esp + 0x20]
inc ebp
mov esi, dword [eax]
mov eax, dword [eax + 4]
mov edi, dword [esp + 0x24]
cmp edi, ebp
jae 0x622b37
mov dword [esp + 0xac], esi
mov dword [esp + 0x34], eax
mov eax, dword [esp + 0x64]
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov dword [esp + 0xc], 1
lea eax, [0x6f44e0]
mov dword [esp + 0x10], eax
call fcn.0044e6e0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov esi, dword [esp + 0x1c]
mov ecx, dword [esp + 0xc0]
mov edx, dword [esp + 0x3c]
mov ebx, dword [esp + 0x38]
mov dword [esp + 0x64], ebp
mov edi, esi
mov esi, dword [esp + 0xac]
mov ebp, eax
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0x64]
lea edx, [ecx + ebp*8 - 4]
mov dword [edx], eax
mov eax, dword [0x995310]
lea edx, [ecx + ebp*8 - 8]
test eax, eax
je 0x6229c0
mov dword [esp + 0x2c], edi
call fcn.00468e70
mov dword [edi], esi
mov eax, dword [edx]
mov dword [edi + 4], eax
mov edi, dword [esp + 0x2c]
jmp 0x6229c0
mov edx, dword [esp + 0xdc]
test edx, edx
jbe 0x623263
mov eax, dword [esp + 0xd8]
mov ecx, dword [eax]
mov edx, dword [eax + 4]
mov eax, dword [eax + 8]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.005d0980
mov eax, dword [esp + 0x10]
mov ecx, dword [esp + 0xc]
test eax, eax
jne 0x623070
mov dword [esp + 0x60], ecx
mov eax, dword [esp + 0x74]
mov ecx, dword [eax + 0xc]
mov edx, dword [eax + 0x10]
mov eax, dword [eax + 0x14]
mov dword [esp], ecx
mov dword [esp + 4], edx
mov dword [esp + 8], eax
call fcn.00623280
mov eax, dword [esp + 0xc]
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x14]
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
mov dword [esp + 0x78], ebp
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x10]
mov ebp, dword [esp + 0x10]
mov dword [esp + 0xe4], eax
mov dword [esp + 0xe8], ecx
test edx, edx
jne 0x623049
mov ecx, dword [esp + 0x60]
mov edx, dword [ecx + 0x50]
test edx, edx
je 0x622ff1
mov ebx, dword [edx + 8]
mov ecx, dword [ecx + 0x54]
cmp ebx, 0x4bcec15d
jne 0x622d0a
lea ebx, [0x706680]
cmp edx, ebx
jne 0x622ff1
lea edx, [0x724d00]
cmp eax, edx
jne 0x622cb2
mov eax, dword [ecx]
mov ecx, dword [esi]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004ec260
mov eax, dword [esp + 8]
test eax, eax
je 0x622f11
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0xa8], eax
mov dword [eax + 4], 0x2a
lea ecx, [0x74b62f]
mov dword [eax], ecx
lea edi, [esp + 0x130]
xor eax, eax
call fcn.004690f1
lea eax, [0x7b0bb8]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x170], eax
add esp, 0x114
ret
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0xa4], eax
mov dword [eax + 4], 0x34
lea ecx, [0x74e9e5]
mov dword [eax], ecx
lea edi, [esp + 0x130]
xor eax, eax
call fcn.004690f1
lea eax, [0x7b0bb8]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0xa4]
mov dword [esp + 0x170], eax
add esp, 0x114
ret
cmp ebx, 0x8c7bd38d
jne 0x622e2a
lea ebx, [0x725f00]
cmp edx, ebx
jne 0x622ff1
lea edx, [0x7288c0]
cmp eax, edx
jne 0x622dd2
mov dword [esp + 0x6c], ecx
mov dword [esp + 0x70], edi
mov eax, dword [ecx + 8]
mov edx, dword [edi + 8]
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.004ec260
mov eax, dword [esp + 8]
test eax, eax
jne 0x622d7a
mov eax, dword [esp + 0x6c]
mov eax, dword [eax + 0xc]
mov ecx, dword [esp + 0x70]
mov ecx, dword [ecx + 0xc]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.004ec260
mov eax, dword [esp + 8]
test eax, eax
je 0x622f11
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0xa0], eax
mov dword [eax + 4], 0x2a
lea ecx, [0x74b62f]
mov dword [eax], ecx
lea edi, [esp + 0x130]
xor eax, eax
call fcn.004690f1
lea eax, [0x7b0bb8]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x170], eax
add esp, 0x114
ret
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0x9c], eax
mov dword [eax + 4], 0x34
lea ecx, [0x74e9e5]
mov dword [eax], ecx
lea edi, [esp + 0x130]
xor eax, eax
call fcn.004690f1
lea eax, [0x7b0bb8]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x9c]
mov dword [esp + 0x170], eax
add esp, 0x114
ret
cmp ebx, 0xc0d9e4a4
jne 0x622ff1
lea ebx, [0x6fdca0]
cmp edx, ebx
jne 0x622ff1
mov edx, dword [ecx]
mov ecx, dword [ecx + 4]
cmp ecx, 0x20
lea ebx, [0x71aae0]
cmp eax, ebx
jne 0x622f99
mov dword [esp + 0x28], ecx
mov ebx, dword [ebp + 4]
mov esi, dword [ebp]
mov ebp, dword [ebp + 8]
lea edi, [esp + 0x40]
xor eax, eax
call fcn.004690f8
cmp ebx, 0x20
jb 0x623257
lea ecx, [ebx - 0x20]
lea ebx, [ebp - 0x20]
neg ebx
sar ebx, 0x1f
and ebx, 0x20
add ebx, esi
cmp ecx, 0x20
jl 0x622e95
mov ecx, 0x20
lea ebp, [esp + 0x40]
cmp ebp, ebx
je 0x622ec7
mov dword [esp + 0x68], edx
mov dword [esp], ebp
mov dword [esp + 4], ebx
mov dword [esp + 8], ecx
call fcn.004697f0
mov eax, dword [esp + 0x28]
cmp eax, 0x20
mov eax, 0
mov edx, dword [esp + 0x68]
lea ebp, [esp + 0x40]
jmp 0x622ece
mov ecx, dword [esp + 0x28]
cmp ecx, 0x20
mov dword [esp + 0xcc], ebp
mov dword [esp + 0xd0], 0x20
mov dword [esp + 0xd4], 0x20
jne 0x622f41
mov eax, dword [esp + 0xcc]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x20
call fcn.004034e0
movzx eax, byte [esp + 0xc]
test al, al
je 0x622f41
lea edi, [esp + 0x130]
lea esi, [esp + 0xd8]
call fcn.0046957a
mov dword [esp + 0x16c], 0
mov dword [esp + 0x170], 0
add esp, 0x114
ret
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0x98], eax
mov dword [eax + 4], 0x2a
lea ecx, [0x74b62f]
mov dword [eax], ecx
lea edi, [esp + 0x130]
xor eax, eax
call fcn.004690f1
lea eax, [0x7b0bb8]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x98]
mov dword [esp + 0x170], eax
add esp, 0x114
ret
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0x94], eax
mov dword [eax + 4], 0x34
lea ecx, [0x74e9e5]
mov dword [eax], ecx
lea edi, [esp + 0x130]
xor eax, eax
call fcn.004690f1
lea eax, [0x7b0bb8]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x170], eax
add esp, 0x114
ret
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0x90], eax
mov dword [eax + 4], 0x21
lea ecx, [0x7473c1]
mov dword [eax], ecx
lea edi, [esp + 0x130]
xor eax, eax
call fcn.004690f1
lea eax, [0x7b0bb8]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x90]
mov dword [esp + 0x170], eax
add esp, 0x114
ret
lea edi, [esp + 0x130]
xor eax, eax
call fcn.004690f1
mov dword [esp + 0x16c], ebx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x170], ecx
add esp, 0x114
ret
mov ecx, dword [esp + 0x10]
mov dword [esp + 0xb8], ecx
mov edx, dword [esp + 0x14]
lea edi, [esp + 0x130]
xor eax, eax
call fcn.004690f1
mov ecx, dword [esp + 0xb8]
mov dword [esp + 0x16c], ecx
mov dword [esp + 0x170], edx
add esp, 0x114
ret
mov eax, dword [esp + 0x20]
test eax, eax
je 0x6231ff
cmp eax, 1
jne 0x623153
mov ecx, dword [esp + 0x64]
cmp dword [ecx + 4], 0xb
je 0x6230cc
xor edx, edx
jmp 0x6230f7
mov eax, dword [ecx]
mov dword [esp], eax
lea eax, [0x73c726]
mov dword [esp + 4], eax
mov dword [esp + 8], 0xb
call fcn.004034e0
movzx eax, byte [esp + 0xc]
mov ecx, dword [esp + 0x64]
mov edx, eax
mov eax, dword [esp + 0x20]
test dl, dl
je 0x623157
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0x8c], eax
mov dword [eax + 4], 0x49
lea ecx, [0x751a9e]
mov dword [eax], ecx
lea edi, [esp + 0x130]
xor eax, eax
call fcn.004690f1
lea eax, [0x7b0bb8]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x8c]
mov dword [esp + 0x170], eax
add esp, 0x114
ret
mov ecx, dword [esp + 0x64]
mov dword [esp + 0xc4], 0
mov dword [esp + 0xc8], 0
mov dword [esp], ecx
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
call fcn.00409dc0
mov eax, dword [esp + 0xc]
lea ecx, [0x6ea2c0]
mov dword [esp + 0xc4], ecx
mov dword [esp + 0xc8], eax
lea eax, [0x752d19]
mov dword [esp], eax
mov dword [esp + 4], 0x81
lea eax, [esp + 0xc4]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 1
mov dword [esp + 0x10], 1
call fcn.004c1f50
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [esp + 0x7c], ecx
lea edi, [esp + 0x130]
mov edx, eax
xor eax, eax
call fcn.004690f1
mov dword [esp + 0x16c], edx
mov eax, dword [esp + 0x7c]
mov dword [esp + 0x170], eax
add esp, 0x114
ret
lea eax, [0x701240]
mov dword [esp], eax
call fcn.0040c500
mov eax, dword [esp + 4]
mov dword [esp + 0x88], eax
mov dword [eax + 4], 0x2d
lea ecx, [0x74c73d]
mov dword [eax], ecx
lea edi, [esp + 0x130]
xor eax, eax
call fcn.004690f1
lea eax, [0x7b0bb8]
mov dword [esp + 0x16c], eax
mov eax, dword [esp + 0x88]
mov dword [esp + 0x170], eax
add esp, 0x114
ret
mov eax, 0x20
mov ecx, ebx
call fcn.00468f30
xor eax, eax
mov ecx, eax
call fcn.00468ed0
mov eax, esi
mov ecx, ebp
call fcn.00468f30
nop
call fcn.00467a60
jmp fcn.00622560