Function at 0x1001ab39
Capabilities:
Encode data using xor
Encrypt data using rc4 ksa
Validate payment card number using luhn algorithm

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x1d8
push ebx
push esi
push edi
mov ebx, dword [str.j2_GJetEndSession]
mov edi, str.jack_port_register
push 0x5d
mov dword [ebp - 0x40], ecx
xorps xmm2, xmm2
pop ecx
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x24], 0x35
mov dword [ebp - 0x20], 0x61
mov dword [ebp - 0x1c], 0xfffffec8
movups xmm1, xmmword [ebp - 0x28]
mov dword [ebp - 0x24], ecx
push 0x6a
movaps xmm0, xmm1
mov dword [ebp - 0x44], edx
psrldq xmm0, 8
paddd xmm1, xmm0
mov dword [ebp - 8], 0x14
movups xmm0, xmm1
mov dword [ebp - 0x28], 0x4a
psrldq xmm0, 4
paddd xmm1, xmm0
mov dword [ebp - 0x20], 0x26
movd eax, xmm1
mov dword [ebp - 0x1c], 0xffffff45
mov dword [ebp - 0xc], edi
add eax, 0x46
xor ecx, ecx
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x18], ecx
pop edx
mov eax, edi
mov esi, 0x65d
mov edi, edx
add esi, edi
lea eax, [eax + 2]
cmp esi, 0x10b8
ja 0x1001abe9
movzx edi, word [eax]
test edi, edi
jne 0x1001abcd
xor ebx, 0xbf898c94
jmp 0x1001abef
add ebx, 0xa1e9855
mov esi, dword [ebp - 8]
mov eax, ebx
sub esi, dword [ebp + ecx*4 - 0x28]
and ebx, 0x2e97c3db
inc ecx
mov dword [ebp - 0x14], eax
mov dword [ebp - 8], esi
mov edi, str.jack_port_register
cmp ecx, 4
jl 0x1001abc4
mov dword [ebp - 0x28], 0x2b
mov dword [ebp - 0x24], 0x11
mov dword [ebp - 0x20], 0x5b
mov dword [ebp - 0x1c], 0xffffff93
movups xmm0, xmmword [ebp - 0x28]
push 0x2d
pop ecx
psubd xmm2, xmm0
movaps xmm0, xmm2
psrldq xmm0, 8
paddd xmm2, xmm0
movups xmm0, xmm2
psrldq xmm0, 4
paddd xmm2, xmm0
movd edi, xmm2
push 0
add edi, ecx
mov ecx, dword [ebp - 0x40]
cmp ecx, dword [ebp - 0x10]
pop ecx
jne 0x1001adbc
push 0xb
pop ecx
mov esi, str.String_literals_cannot_cross_line_boundaries.
mov dword [ebp - 0x24], 0x4bd19bc2
lea edi, [ebp - 0x174]
mov dword [ebp - 0x20], 0x411773c1
rep movsd dword es:[edi], dword [esi]
xor ebx, ebx
mov dword [ebp - 0x1c], 0xd0ea1d25
mov eax, ebx
movsw word es:[edi], word [esi]
mov esi, ebx
mov byte [ebp + eax - 0x144], al
inc eax
cmp eax, 0x100
jb 0x1001ac90
mov edi, dword [ebp - 0x14]
mov ecx, ebx
mov dword [ebp - 8], ecx
jmp 0x1001acac
mov esi, dword [ebp - 0x10]
mov al, byte [ebp + ecx - 0x144]
xor edx, edx
mov byte [ebp - 1], al
mov eax, ecx
push 0x2d
pop ecx
div ecx
movzx ecx, byte [ebp - 1]
movzx eax, byte [ebp + edx - 0x174]
add eax, esi
mov esi, edi
add ecx, eax
and esi, 0x159b1ac6
movzx edx, cl
mov eax, ebx
mov dword [ebp - 0x10], edx
inc eax
cmp eax, 0x13f2
jl 0x1001acfe
cmp byte [eax + str._ProgramFiles__baiduSparkchrome.exe], bl
jne 0x1001acdf
cmp eax, 0x1419
jle 0x1001ad04
add esi, 0x54c29e0b
jmp 0x1001ad0a
lea edi, [esi - 0x521c56e8]
add esi, 0x16014da
mov dword [ebp - 0x18], esi
mov ecx, dword [ebp - 8]
add edi, 0x4af60b6
mov al, byte [ebp + edx - 0x144]
mov dword [str.j2_GJetEndSession], esi
mov dword [0x10029640], edi
mov byte [ebp + ecx - 0x144], al
inc ecx
mov al, byte [ebp - 1]
mov byte [ebp + edx - 0x144], al
mov dword [ebp - 8], ecx
cmp ecx, 0x100
jb 0x1001aca9
mov dword [ebp - 0x14], edi
mov esi, ebx
mov edi, ebx
lea eax, [edi + 1]
movzx edi, al
mov cl, byte [ebp + edi - 0x144]
movzx edx, cl
lea eax, [edx + esi]
movzx esi, al
mov al, byte [ebp + esi - 0x144]
mov byte [ebp + edi - 0x144], al
mov byte [ebp + esi - 0x144], cl
movzx eax, byte [ebp + edi - 0x144]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x144]
xor al, byte [ebp + ebx - 0x24]
mov byte [ebp + ebx - 0x3c], al
inc ebx
cmp ebx, 0xc
jb 0x1001ad51
xor ebx, ebx
lea edx, [ebp - 0x3c]
lea ecx, [ebp - 0x1d8]
mov byte [ebp - 0x30], bl
call fcn.10012fac
mov esi, dword [ebp - 0x18]
mov edi, dword [ebp - 0x14]
jmp 0x1001b168
cmp dword [ebp - 0x40], esi
jne 0x1001af3f
mov word [ebp - 0x3c], 0x402e
mov byte [ebp - 0x3a], dl
mov dword [ebp - 0x39], 0xbf9120d3
mov word [ebp - 0x35], 0x94c
mov byte [ebp - 0x33], 0x5c
add ebx, 0x4a3371e6
mov ecx, ebx
mov dword [ebp - 0x18], ebx
mov dword [str.j2_GJetEndSession], ebx
call fcn.10019f6c
push 0x6a
pop ecx
push 9
pop esi
lea eax, [ecx - 0x30]
cmp ax, si
ja 0x1001ae18
mov eax, dword [ebp - 0xc]
add eax, 2
mov dword [ebp - 0xc], eax
movzx eax, word [eax]
mov ecx, eax
test ax, ax
jne 0x1001adfb
jmp 0x1001ae27
or ebx, 0xeff3ca91
mov dword [ebp - 0x18], ebx
mov dword [str.j2_GJetEndSession], ebx
push 5
pop ecx
mov esi, str.DecodingLookupArray
lea edi, [ebp - 0x2c]
rep movsd dword es:[edi], dword [esi]
mov ecx, str._ProgramFiles__baiduSparkchrome.exe
mov al, 0x25
sub al, 0x30
cmp al, 9
ja 0x1001ae4a
inc ecx
mov al, byte [ecx]
test al, al
jne 0x1001ae3b
jmp 0x1001ae59
or ebx, 0x600822df
mov dword [ebp - 0x18], ebx
mov dword [str.j2_GJetEndSession], ebx
and ebx, 0x3ad7fb9a
mov dword [ebp - 0x14], ebx
call fcn.10019a87
xor esi, esi
mov eax, esi
mov byte [ebp + eax - 0x144], al
inc eax
cmp eax, 0x100
jb 0x1001ae6b
mov edi, esi
xor edx, edx
mov bl, byte [ebp + esi - 0x144]
push 0x13
mov eax, esi
pop ecx
div ecx
movzx ecx, bl
movzx eax, byte [ebp + edx - 0x2c]
add eax, edi
add ecx, eax
movzx edi, cl
mov al, byte [ebp + edi - 0x144]
mov byte [ebp + esi - 0x144], al
inc esi
mov byte [ebp + edi - 0x144], bl
cmp esi, 0x100
jb 0x1001ae7c
mov edi, dword [ebp - 0x14]
xor ebx, ebx
mov dword [ebp - 8], ebx
mov esi, ebx
lea eax, [ebx + 1]
xor edi, 0xba0e22fd
movzx ebx, al
mov eax, dword [ebp - 8]
mov cl, byte [ebp + ebx - 0x144]
movzx edx, cl
add eax, edx
movzx eax, al
mov dword [ebp - 8], eax
mov al, byte [ebp + eax - 0x144]
mov byte [ebp + ebx - 0x144], al
mov eax, dword [ebp - 8]
mov byte [ebp + eax - 0x144], cl
movzx eax, byte [ebp + ebx - 0x144]
add eax, edx
movzx eax, al
mov al, byte [ebp + eax - 0x144]
xor al, byte [ebp + esi - 0x3c]
mov byte [ebp + esi - 0x24], al
inc esi
cmp esi, 0xa
jb 0x1001aec3
xor ebx, ebx
mov dword [0x10029640], edi
lea edx, [ebp - 0x24]
mov byte [ebp - 0x1a], bl
lea ecx, [ebp - 0x1d8]
call fcn.10012fac
mov esi, dword [ebp - 0x18]
jmp 0x1001b168
cmp dword [ebp - 0x40], edi
jne 0x1001b1f9
mov esi, str.hoverRight
mov dword [ebp - 0x38], 0xb511b3a6
lea edi, [ebp - 0x24]
mov dword [ebp - 0x34], 0x7cea2837
mov byte [ebp - 0x30], 0x32
mov eax, str.jack_port_register
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsw word es:[edi], word [esi]
movsb byte es:[edi], byte [esi]
mov edi, ebx
mov esi, 0x84a
xor edi, 0xf5dcab44
add esi, edx
lea eax, [eax + 2]
cmp esi, 0x60b
ja 0x1001af8f
movzx edx, word [eax]
test edx, edx
jne 0x1001af79
jmp 0x1001af95
lea ebx, [edi + 0x59f6af78]
and ebx, 0xadb45e86
mov dword [ebp - 8], ecx
mov eax, ecx
mov byte [ebp + eax - 0x144], al
inc eax
cmp eax, 0x100
jb 0x1001afa0
mov dword [ebp - 0xc], ecx
xor esi, esi
mov al, byte [ebp + ecx - 0x144]
xor edx, edx
mov byte [ebp - 1], al
mov eax, ecx
push 0xa
pop ecx
div ecx
movzx ecx, byte [ebp - 1]
push 0x25
movzx eax, byte [ebp + edx - 0x24]
mov edx, 0x20e4
add eax, dword [ebp - 8]
add ecx, eax
movzx eax, cl
mov dword [ebp - 8], eax
mov eax, str._ProgramFiles__baiduSparkchrome.exe
pop ecx
add edx, ecx
inc eax
cmp edx, 0x756
ja 0x1001affc
movsx ecx, byte [eax]
test ecx, ecx
jne 0x1001afe8
jmp 0x1001b001
call fcn.10019ebd
sub ebx, 0x69f5570a
lea eax, [ebx - 0x615b90cb]
mov edi, esi
mov dword [ebp - 0x10], eax
or ebx, 0xc49bafe5
inc edi
cmp edi, 0x1a0e
jg 0x1001b0ba
cmp byte [edi + str._ProgramFiles__baiduSparkchrome.exe], 0
jne 0x1001b018
lea edi, [ebx - 0x6cd52666]
xor ebx, 0xd82dfa1a
call fcn.100196be
mov edx, dword [ebp - 8]
mov ecx, dword [ebp - 0xc]
mov al, byte [ebp + edx - 0x144]
mov byte [ebp + ecx - 0x144], al
inc ecx
mov al, byte [ebp - 1]
mov byte [ebp + edx - 0x144], al
mov dword [ebp - 0xc], ecx
cmp ecx, 0x100
jb 0x1001afb4
xor ebx, ebx
mov ecx, ebx
mov dword [ebp - 0x14], ebx
push 9
mov edx, ebx
mov dword [ebp - 0xc], ecx
pop esi
lea eax, [edx + 1]
movzx eax, al
mov dword [ebp - 0x10], eax
mov al, byte [ebp + eax - 0x144]
movzx edx, al
mov byte [ebp - 1], al
mov eax, dword [ebp - 0x14]
add eax, edx
mov dword [ebp - 8], edx
movzx eax, al
mov edx, ebx
mov dword [ebp - 0x14], eax
mov eax, str.jack_port_register
inc edx
lea eax, [eax + 2]
cmp edx, 0x1889
je 0x1001b0e4
cmp word [eax], bx
jne 0x1001b0a7
jmp 0x1001b0f2
call fcn.10019bbe
mov ebx, dword [ebp - 0x10]
add ebx, 0x1d385cf
cmp edi, 0x23b6
jle 0x1001b02e
call fcn.10019bbe
imul edi, ebx, 0x8f37c3c8
jmp 0x1001b034
call fcn.1001958b
mov ecx, dword [ebp - 0xc]
or edi, 0xde8e1265
xor edi, 0xb13afaf2
mov eax, dword [ebp - 0x14]
mov edx, dword [ebp - 0x10]
mov bl, byte [ebp - 1]
push 0
mov al, byte [ebp + eax - 0x144]
mov byte [ebp + edx - 0x144], al
mov eax, dword [ebp - 0x14]
mov byte [ebp + eax - 0x144], bl
movzx eax, byte [ebp + edx - 0x144]
add eax, dword [ebp - 8]
movzx eax, al
pop ebx
mov al, byte [ebp + eax - 0x144]
xor al, byte [ebp + ecx - 0x38]
mov byte [ebp + ecx - 0x24], al
inc ecx
mov dword [ebp - 0xc], ecx
cmp ecx, esi
jb 0x1001b07c
imul esi, edi, 0xf18d7b1f
lea edx, [ebp - 0x24]
lea ecx, [ebp - 0x1d8]
mov dword [0x10029640], edi
mov byte [ebp - 0x1b], bl
mov dword [str.j2_GJetEndSession], esi
call fcn.10012fac
mov eax, dword [ebp - 0x40]
mov eax, dword [eax*4 + 0x100296e8]
mov dword [ebp - 0xc], eax
test eax, eax
jne 0x1001b19f
lea eax, [ebp - 0x1d8]
push eax
call dword [0x100296e4]
mov ecx, dword [ebp - 0x40]
mov edi, dword [0x10029640]
mov esi, dword [str.j2_GJetEndSession]
mov dword [ebp - 0xc], eax
mov dword [ecx*4 + 0x100296e8], eax
mov ecx, ebx
mov eax, str._family:monoa
inc ecx
lea eax, [eax + 2]
cmp ecx, 0x404
je 0x1001b1cc
cmp word [eax], bx
jne 0x1001b1a6
cmp ecx, 0xb1b
jle 0x1001b1d9
lea eax, [edi + 0x45a284f8]
mov dword [str.j2_GJetEndSession], eax
jmp 0x1001b1df
call fcn.1001a274
mov edi, esi
xor edi, 0x4544dcd2
or edi, 0xa4f22a9d
push dword [ebp - 0x44]
xor edi, 0xa0eb8f2c
push dword [ebp - 0xc]
mov dword [0x10029640], edi
call dword [0x100296dc]
jmp 0x1001b277
mov dword [ebp - 0x24], 0x1d
mov esi, ecx
mov dword [ebp - 0x20], 7
mov dword [ebp - 0x1c], 0xffffffdc
xor eax, 0x7f952991
mov dword [ebp - 8], 0x296
mov edi, str.jack_port_register
mov dword [ebp - 0xc], edx
mov ecx, dword [ebp - 0xc]
lea edi, [edi + 2]
add dword [ebp - 8], ecx
cmp dword [ebp - 8], 0x1ff8
mov ecx, dword [ebp - 0x18]
ja 0x1001b248
movzx ecx, word [edi]
mov dword [ebp - 0xc], ecx
test ecx, ecx
mov ecx, dword [ebp - 0x18]
jne 0x1001b224
jmp 0x1001b24f
mov eax, ebx
xor eax, 0xa76671ed
mov ebx, eax
xor ebx, 0xc4d6defc
sub ecx, dword [ebp + esi*4 - 0x24]
imul eax, eax, 0xd68b746e
inc esi
mov dword [ebp - 0x18], ecx
cmp esi, 3
jl 0x1001b210
mov dword [0x10029640], eax
mov eax, ecx
mov dword [str.j2_GJetEndSession], ebx
pop edi
pop esi
pop ebx
leave
ret