Function at 0x1400f69b0
Capabilities:
Encrypt data using rc4 ksa

Disassembly:
mov word [rsp + 0x10], dx
mov qword [rsp + 8], rcx
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0xb0
mov rax, qword [rcx]
mov r12, rcx
movzx ecx, byte [rcx + 0x42]
mov r8, qword [rax]
movzx edi, dx
xor edx, edx
mov r14d, 1
mov qword [rsp + 0x80], rax
mov dword [rsp + 0x100], ecx
cmp ecx, r14d
mov qword [rsp + 0x90], r8
mov dword [rsp + 0x54], edx
movzx esi, dx
movzx r13d, dx
mov qword [rsp + 0x70], rdx
jg 0x1400f6a19
mov ebx, r14d
mov dword [rsp + 0x50], ebx
jmp 0x1400f6a2d
mov ebx, 0xa
mov eax, 5
cmp ecx, 2
cmove ebx, eax
mov dword [rsp + 0x50], ebx
mov rax, qword [r12 + 0x10]
test rax, rax
je 0x1400f6a46
test di, di
je 0x1400f6a46
mov r15d, dword [rax]
mov dword [rsp + 0x58], r15d
jmp 0x1400f6a4d
mov r15d, edx
mov dword [rsp + 0x58], edx
lea eax, [rcx + 4]
imul eax, ebx
lea ecx, [r15 + rax*8]
add ecx, ecx
movsxd rdx, ecx
mov rcx, r8
call fcn.140063460
mov rdx, rax
mov qword [rsp + 0x60], rax
test rax, rax
jne 0x1400f6a79
lea eax, [rdx + 7]
jmp 0x1400f75cb
xor ecx, ecx
mov qword [rsp + 0x40], rax
mov qword [rsp + 0xa8], rbp
mov rbp, rax
movsxd rax, ebx
shl rax, 5
lea r9, [rax + rdx]
mov qword [rsp + 0x78], r9
mov qword [r9], rcx
mov qword [r9 + 8], rcx
mov qword [r9 + 0x10], rcx
mov qword [r9 + 0x18], rcx
lea rcx, [rax + r9]
lea eax, [rbx + rbx]
test eax, eax
jle 0x1400f6ae0
movsxd r8, dword [rsp + 0x100]
shl r8, 3
add rdx, 0x18
nop word [rax + rax]
mov qword [rdx], rcx
dec eax
add rdx, 0x20
add rcx, r8
test eax, eax
jg 0x1400f6ad0
test r15d, r15d
je 0x1400f6afc
movsxd r8, r15d
xor edx, edx
mov qword [rsp + 0x70], rcx
add r8, r8
call sub.MSVCR90.dll_memset
mov r9, qword [rsp + 0x78]
mov rax, qword [rsp + 0x80]
mov ecx, 0x30
mov edx, r14d
mov eax, dword [rax + 0xb4]
mov dword [rsp + 0x6c], edx
cmp eax, ecx
cmovb ecx, eax
mov word [r9 + 0x10], cx
test r15d, r15d
je 0x1400f6b40
movzx eax, r15b
mov r15d, dword [rsp + 0x100]
or ecx, 0xffffffff
test r15d, r15d
cmovg eax, ecx
mov byte [r9 + 0x16], al
jmp 0x1400f6b48
mov r15d, dword [rsp + 0x100]
xor r8d, r8d
mov ecx, r8d
mov dword [rsp + 0x108], ecx
test r15d, r15d
jle 0x1400f72bb
nop
mov eax, r8d
mov r15d, r8d
mov rdi, r9
mov qword [rsp + 0x48], r9
mov dword [rsp + 0x68], eax
test edx, edx
jle 0x1400f718a
nop word [rax + rax]
mov r14, qword [r12 + 0x50]
test r14, r14
je 0x1400f7167
nop
mov r9, qword [rdi]
movzx r11d, byte [rdi + 0x16]
mov qword [rsp + 0x88], r8
mov rax, r9
not rax
test qword [r14], rax
jne 0x1400f714a
mov rbp, qword [r14 + 8]
test r9, rbp
jne 0x1400f7145
bt dword [r14 + 0x28], 0xe
jae 0x1400f6bcf
cmp word [rdi + 0x10], 3
jl 0x1400f713e
movzx r10d, word [rdi + 0x10]
movzx edx, word [r14 + 0x14]
mov bx, word [r14 + 0x12]
add dx, r10w
cmp bx, dx
jl 0x1400f6c36
movsx ecx, dx
movsx r8d, bx
lea eax, [rcx + 0x31]
cmp r8d, eax
jle 0x1400f6c02
lea r12, [0x140000000]
jmp 0x1400f6c83
lea eax, [rcx + 0x1f]
cmp r8d, eax
jle 0x1400f6c16
inc bx
lea r12, [0x140000000]
jmp 0x1400f6c83
movsx rcx, bx
movsx rax, dx
lea r12, [0x140000000]
sub rcx, rax
movzx eax, byte [rcx + r12 + 0x12cff8]
add bx, ax
jmp 0x1400f6c83
movsx ecx, bx
movsx r8d, dx
lea eax, [rcx + 0x31]
cmp r8d, eax
jle 0x1400f6c51
mov bx, dx
lea r12, [0x140000000]
jmp 0x1400f6c83
lea eax, [rcx + 0x1f]
cmp r8d, eax
jle 0x1400f6c65
lea ebx, [rdx + 1]
lea r12, [0x140000000]
jmp 0x1400f6c83
movsx rax, bx
movsx rcx, dx
lea r12, [0x140000000]
sub rcx, rax
movzx ebx, byte [rcx + r12 + 0x12cff8]
add bx, dx
movzx edx, word [rdi + 0x14]
cmp bx, dx
jl 0x1400f6cc1
movsx ecx, dx
movsx r8d, bx
lea eax, [rcx + 0x31]
cmp r8d, eax
jg 0x1400f6cf9
lea eax, [rcx + 0x1f]
cmp r8d, eax
jle 0x1400f6ca8
inc bx
jmp 0x1400f6cf9
movsx rax, dx
movsx rcx, bx
sub rcx, rax
movzx eax, byte [rcx + r12 + 0x12cff8]
add bx, ax
jmp 0x1400f6cf9
movsx ecx, bx
movsx r8d, dx
lea eax, [rcx + 0x31]
cmp r8d, eax
jle 0x1400f6cd5
mov bx, dx
jmp 0x1400f6cf9
lea eax, [rcx + 0x1f]
cmp r8d, eax
jle 0x1400f6ce2
lea ebx, [rdx + 1]
jmp 0x1400f6cf9
movsx rax, bx
movsx rcx, dx
sub rcx, rax
movzx ebx, byte [rcx + r12 + 0x12cff8]
add bx, dx
movzx r12d, word [r14 + 0x16]
or rbp, r9
add r12w, r10w
test r11b, r11b
jns 0x1400f6d54
lea rax, [rsp + 0x88]
mov r8, rdi
mov qword [rsp + 0x30], rax
mov eax, dword [rsp + 0x108]
mov qword [rsp + 0x28], r14
mov word [rsp + 0x20], ax
mov rax, qword [rsp + 0xf0]
movzx r9d, word [rax + 0x40]
mov rdx, qword [rax + 0x10]
mov rcx, rax
mov rdi, rax
call fcn.1400f5fd0
mov r10, qword [rsp + 0x88]
mov r11b, al
jmp 0x1400f6d60
mov r10, qword [rdi + 8]
mov rdi, qword [rsp + 0xf0]
test r11b, r11b
js 0x1400f6f8a
mov edx, dword [rsp + 0x58]
movsx ecx, r11b
cmp ecx, edx
jge 0x1400f6f8a
mov rax, qword [rsp + 0x70]
movsx r9, r11b
cmp word [rax + r9*2], 0
jne 0x1400f6eeb
movzx r8d, word [rsp + 0xf8]
mov eax, edx
sub eax, ecx
imul eax, eax, 0x64
cdq
idiv dword [rsp + 0x58]
movsxd rcx, eax
mov eax, 0x28
cmp rcx, 8
jae 0x1400f6dcf
cmp rcx, 2
jae 0x1400f6dc0
xor eax, eax
movzx edx, ax
jmp 0x1400f6e26
add rcx, rcx
add ax, 0xfff6
cmp rcx, 8
jb 0x1400f6dc0
jmp 0x1400f6e0d
cmp rcx, 0xff
jbe 0x1400f6df1
nop dword [rax + rax]
shr rcx, 4
add ax, 0x28
cmp rcx, 0xff
ja 0x1400f6de0
cmp rcx, 0xf
jbe 0x1400f6e0d
nop word [rax + rax]
shr rcx, 1
add ax, 0xa
cmp rcx, 0xf
ja 0x1400f6e00
and ecx, 7
lea rdx, [0x140000000]
mov dx, word [rdx + rcx*2 + 0x17d8f0]
add dx, ax
sub dx, 0xa
mov cx, word [rsp + 0xf8]
mov eax, 0x4000
add dx, cx
sub dx, 0x32
test word [rdi + 0x40], ax
je 0x1400f6e4c
movzx eax, word [rdi + 0x28]
cmp ax, cx
cmovl r8w, ax
cmp r8w, 0xa
jg 0x1400f6e5a
xor eax, eax
jmp 0x1400f6edb
movsx rax, r8w
mov ecx, 0x28
cmp rax, 8
jae 0x1400f6e82
cmp rax, 2
jae 0x1400f6e73
xor eax, eax
jmp 0x1400f6ed7
add rax, rax
add cx, 0xfff6
cmp rax, 8
jb 0x1400f6e73
jmp 0x1400f6ebd
cmp rax, 0xff
jbe 0x1400f6ea0
nop word [rax + rax]
shr rax, 4
add cx, 0x28
cmp rax, 0xff
ja 0x1400f6e90
cmp rax, 0xf
jbe 0x1400f6ebd
nop word [rax + rax]
shr rax, 1
add cx, 0xa
cmp rax, 0xf
ja 0x1400f6eb0
and eax, 7
lea r8, [0x140000000]
movzx eax, word [r8 + rax*2 + 0x17d8f0]
add ax, cx
sub ax, 0xa
cwde
sub eax, 0x21
mov rcx, qword [rsp + 0x70]
add ax, dx
mov word [rcx + r9*2], ax
mov rax, rcx
mov dx, word [rax + r9*2]
cmp bx, dx
jl 0x1400f6f44
movsx ecx, dx
movsx r8d, bx
lea eax, [rcx + 0x31]
cmp r8d, eax
jle 0x1400f6f10
mov dx, bx
add dx, 5
jmp 0x1400f6f91
lea eax, [rcx + 0x1f]
cmp r8d, eax
jle 0x1400f6f21
lea edx, [rbx + 1]
add dx, 5
jmp 0x1400f6f91
movsx rax, dx
movsx rcx, bx
sub rcx, rax
lea rax, [0x140000000]
movzx edx, byte [rcx + rax + 0x12cff8]
add dx, bx
add dx, 5
jmp 0x1400f6f91
movsx ecx, bx
movsx r8d, dx
lea eax, [rcx + 0x31]
cmp r8d, eax
jg 0x1400f6f84
lea eax, [rcx + 0x1f]
cmp r8d, eax
jle 0x1400f6f64
inc dx
add dx, 5
jmp 0x1400f6f91
movsx rcx, dx
movsx rax, bx
sub rcx, rax
lea rax, [0x140000000]
movzx eax, byte [rcx + rax + 0x12cff8]
add ax, dx
mov dx, ax
add dx, 5
jmp 0x1400f6f91
mov dx, bx
add bx, 0xfffe
mov rdi, qword [rsp + 0x40]
xor r8d, r8d
mov ecx, r8d
test r15d, r15d
jle 0x1400f6fba
cmp qword [rdi], rbp
jne 0x1400f6faf
movzx eax, byte [rdi + 0x16]
xor al, r11b
jns 0x1400f6fee
inc ecx
add rdi, 0x20
cmp ecx, r15d
jl 0x1400f6fa1
cmp r15d, dword [rsp + 0x50]
jl 0x1400f702a
cmp dx, si
jg 0x1400f70f1
cmp dx, si
jne 0x1400f6fd9
cmp bx, r13w
jge 0x1400f7132
mov eax, dword [rsp + 0x54]
mov rbp, qword [rsp + 0x40]
movsxd rdi, eax
shl rdi, 5
add rdi, rbp
jmp 0x1400f704d
cmp ecx, r15d
jge 0x1400f6fba
movzx eax, word [rdi + 0x12]
cmp ax, dx
jl 0x1400f710e
cmp ax, dx
jne 0x1400f7048
movzx eax, word [rdi + 0x10]
cmp ax, r12w
jl 0x1400f711a
cmp ax, r12w
jne 0x1400f7041
cmp word [rdi + 0x14], bx
jle 0x1400f7126
mov rbp, qword [rsp + 0x40]
jmp 0x1400f704d
mov rbp, qword [rsp + 0x40]
mov eax, r15d
inc r15d
movsxd rdi, eax
shl rdi, 5
add rdi, rbp
jmp 0x1400f704d
mov rbp, qword [rsp + 0x40]
jmp 0x1400f704d
mov rbp, qword [rsp + 0x40]
mov rax, qword [r14 + 8]
mov rcx, qword [rsp + 0x48]
or rax, qword [rcx]
mov word [rdi + 0x14], bx
mov qword [rdi + 8], r10
mov qword [rdi], rax
movsxd rax, dword [rsp + 0x108]
mov word [rdi + 0x10], r12w
mov word [rdi + 0x12], dx
mov byte [rdi + 0x16], r11b
mov rdx, qword [rcx + 0x18]
mov rcx, qword [rdi + 0x18]
lea rbx, [rax*8]
mov r8, rbx
call sub.MSVCR90.dll_memcpy
mov r11, qword [rdi + 0x18]
mov qword [rbx + r11], r14
mov ebx, dword [rsp + 0x50]
cmp r15d, ebx
jl 0x1400f70fd
mov si, word [rbp + 0x12]
mov r13w, word [rbp + 0x10]
xor r8d, r8d
mov edx, 1
mov dword [rsp + 0x54], r8d
cmp ebx, edx
jle 0x1400f7107
lea rax, [rbp + 0x32]
movzx ecx, word [rax]
cmp cx, si
jg 0x1400f70d4
cmp cx, si
jne 0x1400f70e0
cmp word [rax + 2], r13w
jle 0x1400f70e0
mov r13w, word [rax + 2]
mov si, cx
mov dword [rsp + 0x54], edx
inc edx
add rax, 0x20
cmp edx, ebx
jl 0x1400f70c0
mov rdi, qword [rsp + 0x48]
jmp 0x1400f714a
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x40]
jmp 0x1400f714a
mov rdi, qword [rsp + 0x48]
xor r8d, r8d
jmp 0x1400f714a
mov rdi, qword [rsp + 0x48]
jmp 0x1400f714a
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x40]
jmp 0x1400f714a
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x40]
jmp 0x1400f714a
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x40]
jmp 0x1400f714a
mov rdi, qword [rsp + 0x48]
mov rbp, qword [rsp + 0x40]
jmp 0x1400f714a
mov rbp, qword [rsp + 0x40]
jmp 0x1400f714a
mov rbp, qword [rsp + 0x40]
mov r14, qword [r14 + 0x40]
test r14, r14
jne 0x1400f6b90
mov r12, qword [rsp + 0xf0]
mov eax, dword [rsp + 0x68]
mov edx, dword [rsp + 0x6c]
inc eax
add rdi, 0x20
cmp eax, edx
mov dword [rsp + 0x68], eax
mov qword [rsp + 0x48], rdi
jl 0x1400f6b80
mov ecx, dword [rsp + 0x108]
mov r9, qword [rsp + 0x78]
mov rax, rbp
inc ecx
mov edx, r15d
cmp ecx, dword [rsp + 0x100]
mov rbp, r9
mov qword [rsp + 0x40], r9
mov r9, rax
mov qword [rsp + 0x78], rax
mov dword [rsp + 0x6c], edx
mov dword [rsp + 0x108], ecx
jl 0x1400f6b60
test r15d, r15d
jne 0x1400f72a5
mov rcx, qword [rsp + 0x80]
lea rdx, str.no_query_solution
call fcn.1400668e0
mov rcx, qword [rsp + 0x90]
test rcx, rcx
je 0x1400f7233
cmp qword [rcx + reloc.mfc90u.dll_CHtmlEditCtrl::CHtmlEditCtrl], 0
je 0x1400f7201
mov rdx, qword [rsp + 0x60]
call fcn.140063080
lea eax, [r15 + 1]
jmp 0x1400f75c3
mov rbx, qword [rsp + 0x60]
cmp rbx, qword [rcx + 0x190]
jb 0x1400f7238
cmp rbx, qword [rcx + 0x198]
jae 0x1400f7238
mov rax, qword [rcx + reloc.mfc90u.dll_CDynLinkLibrary::CDynLinkLibrary]
mov qword [rbx], rax
mov qword [rcx + reloc.mfc90u.dll_CDynLinkLibrary::CDynLinkLibrary], rbx
mov eax, 1
jmp 0x1400f75c3
mov rbx, qword [rsp + 0x60]
cmp dword [reloc.Languages.dll_Ordinal_1], 0
je 0x1400f7292
mov rcx, qword [0x14018af18]
test rcx, rcx
je 0x1400f7253
call qword [0x14017d320]
mov rcx, rbx
call qword [0x14017d2d8]
dec qword [0x14018aea8]
movsxd rcx, eax
sub qword [0x14018ae60], rcx
mov rcx, rbx
call qword [0x14017d2c8]
mov rcx, qword [0x14018af18]
test rcx, rcx
je 0x1400f729b
call qword [0x14017d330]
mov eax, 1
jmp 0x1400f75c3
mov rcx, rbx
call qword [0x14017d2c8]
mov eax, 1
jmp 0x1400f75c3
mov di, word [rsp + 0xf8]
mov r15d, dword [rsp + 0x100]
mov r14d, 1
movsxd rdx, edx
mov rbx, r9
cmp rdx, 1
jle 0x1400f72f0
lea rcx, [r9 + 0x32]
dec rdx
nop
movzx eax, word [rcx]
cmp word [rbx + 0x12], ax
jle 0x1400f72e3
movsxd rbx, r14d
shl rbx, 5
add rbx, r9
inc r14d
add rcx, 0x20
sub rdx, 1
jne 0x1400f72d0
test r15d, r15d
jle 0x1400f7335
lea rdx, [r12 + 0x3c4]
mov r9d, r15d
mov rax, qword [rbx + 0x18]
add rdx, 0x58
add r8, 8
mov rcx, qword [r8 + rax - 8]
mov qword [rdx - 0x3c], rcx
movzx eax, byte [rcx + 0x10]
mov byte [rdx - 0x58], al
mov rcx, rax
mov rax, qword [r12 + 8]
imul rcx, rcx, 0x70
sub r9, 1
mov ecx, dword [rcx + rax + 0x4c]
mov dword [rdx - 0x80], ecx
jne 0x1400f7300
movzx eax, word [r12 + 0x40]
mov ecx, 0x100
test cx, ax
je 0x1400f73a5
test al, al
js 0x1400f73a5
cmp byte [r12 + 0x47], 0
jne 0x1400f73a5
test di, di
je 0x1400f73a5
mov rax, qword [rbx + 0x18]
movsxd rcx, r15d
lea r8, [rsp + 0xf0]
mov rax, qword [rax + rcx*8 - 8]
mov qword [rsp + 0x30], r8
lea edx, [r15 - 1]
mov qword [rsp + 0x28], rax
mov word [rsp + 0x20], dx
mov rdx, qword [r12 + 0x18]
mov r9d, 0x80
mov r8, rbx
mov rcx, r12
call fcn.1400f5fd0
movsx ecx, al
mov rax, qword [r12 + 0x18]
cmp ecx, dword [rax]
jne 0x1400f73a5
mov byte [r12 + 0x47], 2
mov rdx, qword [r12 + 0x10]
mov byte [r12 + 0x48], 0
test rdx, rdx
je 0x1400f7507
test byte [r12 + 0x40], 0x80
je 0x1400f73da
movsx eax, byte [rbx + 0x16]
cmp eax, dword [rdx]
jne 0x1400f747c
mov byte [r12 + 0x47], 2
xor edi, edi
jmp 0x1400f748e
movzx ecx, byte [rbx + 0x16]
mov byte [r12 + 0x43], cl
mov rax, qword [rbx + 8]
mov qword [r12 + 0x58], rax
test cl, cl
jg 0x1400f7480
mov byte [r12 + 0x43], 0
test r15d, r15d
jle 0x1400f7484
mov rax, qword [rbx + 0x18]
movsxd rcx, r15d
mov r8, qword [rax + rcx*8 - 8]
mov eax, dword [r8 + 0x28]
bt eax, 0xc
jb 0x1400f748c
and eax, 0x104
cmp eax, 0x104
je 0x1400f7488
lea rcx, [rsp + 0xf0]
lea eax, [r15 - 1]
xor edi, edi
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], r8
mov r8, rbx
mov r9d, 0x800
mov rcx, r12
mov qword [rsp + 0xf0], rdi
mov word [rsp + 0x20], ax
call fcn.1400f5fd0
mov rdx, qword [r12 + 0x10]
movsx ecx, al
cmp ecx, dword [rdx]
jne 0x1400f748e
mov rax, qword [rsp + 0xf0]
mov byte [r12 + 0x48], 1
mov qword [r12 + 0x58], rax
jmp 0x1400f748e
xor edi, edi
jmp 0x1400f748e
xor edi, edi
jmp 0x1400f748e
xor edi, edi
jmp 0x1400f748e
xor edi, edi
jmp 0x1400f748e
xor edi, edi
mov eax, 0x200
test word [r12 + 0x40], ax
je 0x1400f7507
movsx eax, byte [r12 + 0x43]
cmp eax, dword [rdx]
jne 0x1400f7507
test r15d, r15d
jle 0x1400f7507
mov rax, qword [rbx + 0x18]
movsxd rcx, r15d
lea r8, [rsp + 0xf0]
mov rax, qword [rax + rcx*8 - 8]
mov qword [rsp + 0x30], r8
dec r15w
mov qword [rsp + 0x28], rax
xor r9d, r9d
mov r8, rbx
mov rcx, r12
mov qword [rsp + 0xf0], rdi
mov word [rsp + 0x20], r15w
call fcn.1400f5fd0
movsx ecx, al
mov rax, qword [r12 + 0x10]
cmp ecx, dword [rax]
jne 0x1400f7507
mov rax, qword [rsp + 0xf0]
mov byte [r12 + 0x44], 1
mov qword [r12 + 0x58], rax
mov rcx, qword [rsp + 0x90]
movzx eax, word [rbx + 0x10]
mov word [r12 + 0x60], ax
test rcx, rcx
je 0x1400f7561
cmp qword [rcx + reloc.mfc90u.dll_CHtmlEditCtrl::CHtmlEditCtrl], 0
je 0x1400f7537
mov rdx, qword [rsp + 0x60]
call fcn.140063080
jmp 0x1400f75c1
mov rbx, qword [rsp + 0x60]
cmp rbx, qword [rcx + 0x190]
jb 0x1400f7566
cmp rbx, qword [rcx + 0x198]
jae 0x1400f7566
mov rax, qword [rcx + reloc.mfc90u.dll_CDynLinkLibrary::CDynLinkLibrary]
mov qword [rbx], rax
mov qword [rcx + reloc.mfc90u.dll_CDynLinkLibrary::CDynLinkLibrary], rbx
jmp 0x1400f75c1
mov rbx, qword [rsp + 0x60]
cmp dword [reloc.Languages.dll_Ordinal_1], 0
je 0x1400f75b8
mov rcx, qword [0x14018af18]
test rcx, rcx
je 0x1400f7581
call qword [0x14017d320]
mov rcx, rbx
call qword [0x14017d2d8]
dec qword [0x14018aea8]
movsxd rcx, eax
sub qword [0x14018ae60], rcx
mov rcx, rbx
call qword [0x14017d2c8]
mov rcx, qword [0x14018af18]
test rcx, rcx
je 0x1400f75c1
call qword [0x14017d330]
jmp 0x1400f75c1
mov rcx, rbx
call qword [0x14017d2c8]
xor eax, eax
mov rbp, qword [rsp + 0xa8]
add rsp, 0xb0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
ret