Function at 0x201091c0
Capabilities:
Encode data using xor
Parse credit card information

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rdi, rcx
mov rax, qword [0x205a38a0]
xor rax, rsp
mov qword [rsp + 0x80], rax
movabs r12, 0x12f910e323c74687
mov r15, rdx
sub r15, rcx
movabs rax, 0x951382e898e80ef9
mov rcx, r12
sub rcx, rax
add rcx, qword [0x205445b0]
add rax, rcx
add rax, 0x84
cmp r15, rax
jge 0x2010941e
mov eax, dword [0x205b3920]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
mov eax, dword [0x205b3920]
lea ecx, [rax - 1]
imul ecx, eax
test cl, 1
jne 0x20109230
cmp rdi, rdx
je 0x20109feb
lea rbx, [rdi + 4]
cmp rbx, rdx
je 0x20109feb
xor r15d, r15d
lea r11, [rsp + 0x70]
mov r13d, 0x112bb675
lea r12, [fcn.201091c0]
mov sil, 1
mov rbp, rbx
mov qword [rsp + 0x28], rdx
jmp 0x20109290
add rbp, 4
inc r15
cmp rbp, rdx
je 0x20109feb
cmp r11, rbp
je 0x2010929c
mov eax, dword [rbp]
mov dword [rsp + 0x70], eax
mov r10d, dword [rsp + 0x70]
cmp r10d, dword [rdi]
jae 0x20109340
lea r14, [r15*4 + 4]
nop word cs:[rax + rax]
mov eax, dword [0x205b3924]
cmp eax, 0x3d
jg 0x201092fd
mov rcx, rbx
mov rdx, rdi
mov r8, r14
call fcn.2044f800
mov eax, dword [0x205b3920]
lea ecx, [rax + 1]
imul ecx, eax
and ecx, 1
mov eax, dword [0x205445ac]
mov edx, 0x112bb674
add eax, edx
cmp ecx, eax
je 0x20109400
mov rcx, rbx
mov rdx, rdi
mov r8, r14
call fcn.2044f800
mov eax, dword [0x205445ac]
add eax, r13d
lea ecx, [r12 + r12]
add ecx, 0x1ac0
not ecx
not eax
mov edx, eax
xor edx, ecx
and edx, eax
or edx, ecx
cmp edx, 0xffffffff
jne 0x201092c0
jmp 0x201092cb
mov ecx, dword [rbp - 4]
mov rax, rbp
cmp r10d, ecx
jae 0x201093b4
lea r9, [rbp - 4]
mov r8, rbp
nop word cs:[rax + rax]
mov rax, r9
mov r10d, dword [0x205b3920]
mov r9d, dword [0x205445ac]
neg r9d
add r9d, r10d
inc r9d
jmp 0x2010938e
mov dword [r8], ecx
mov r10d, dword [0x205b3920]
lea r9d, [r10 - 1]
imul r9d, r10d
test r9b, 1
jne 0x20109380
mov dword [r8], ecx
test sil, sil
je 0x20109380
lea r9, [rax - 4]
mov r10d, dword [rsp + 0x70]
mov ecx, dword [rax - 4]
mov r8, rax
cmp r10d, ecx
jb 0x20109360
cmp rax, r11
je 0x20109280
nop dword [rax]
mov ecx, dword [0x205b3924]
cmp ecx, 0x3a
jg 0x201093eb
mov dword [rax], r10d
mov ecx, dword [0x205445ac]
add ecx, r13d
lea r8d, [r12 + r12]
add r8d, 0x4a80
test r8d, ecx
je 0x20109280
mov dword [rax], r10d
test sil, sil
je 0x201093c0
jmp 0x201093cb
lea r11, [rsp + 0x70]
cmp r11, rdi
mov rdx, qword [rsp + 0x28]
je 0x20109280
mov eax, dword [rsp + 0x70]
mov dword [rdi], eax
jmp 0x20109280
mov rbx, r8
test r8, r8
jle 0x20109524
movabs r13, 0xed06ef1cdc38b979
xor ebp, ebp
mov r8, rdx
mov r14, rdx
nop dword [rax]
lea rcx, [rsp + 0x70]
mov rdx, rdi
mov rsi, r8
call fcn.2010a010
mov rax, rbx
shr rax, 1
shr rbx, 2
add rbx, rax
mov rdx, qword [rsp + 0x70]
mov r15, qword [rsp + 0x78]
mov rax, rdx
sub r14, r15
movabs rcx, 0x84fb39ff2b4c994a
add r14, rcx
sub r14, qword [0x205445b0]
sub rax, rdi
sub r14, rcx
add r14, r13
cmp rax, r14
jge 0x201094b0
mov rcx, rdi
mov r8, rbx
call fcn.201091c0
mov rdi, qword [rsp + 0x78]
mov rdx, rsi
jmp 0x201094f6
mov eax, dword [0x205b3924]
cmp eax, 0x38
jle 0x201094de
mov rcx, r15
mov rdx, rsi
mov r8, rbx
call fcn.201091c0
mov eax, dword [0x205b3920]
mov ecx, eax
not ecx
add ecx, 2
imul ecx, eax
test cl, 1
jne 0x201094b0
mov rcx, r15
mov rdx, rsi
mov r8, rbx
call fcn.201091c0
test bpl, bpl
jne 0x201094bb
mov rdx, qword [rsp + 0x70]
mov r15, rdx
sub r15, qword [0x205445b0]
sub r15, rdi
add r15, r13
cmp r15, 0x84
jl 0x20109221
mov r8, rdx
mov r14, rdx
test rbx, rbx
jne 0x20109440
jmp 0x20109527
mov r8, rdx
mov qword [rsp + 0x28], r8
movabs rax, 0x2f9cddcf25fa7332
mov r9, r15
shr r9, 3
lea rcx, [0x2046f180]
add rcx, rax
neg rcx
mov rdx, rcx
xor rdx, rax
and rcx, rax
lea rax, [rdx + rcx*2]
mov ecx, 0x112bb675
lea rdx, [fcn.201091c0]
lea r10d, [rdx + rdx]
add r10d, 0x4b40
mov r11d, r10d
not r11d
nop word cs:[rax + rax]
mov r8d, dword [0x205b3920]
lea esi, [r8 - 1]
imul esi, r8d
test sil, 1
jne 0x201095bb
movsxd rbx, dword [0x2046f180]
mov r8d, dword [0x205445ac]
add r8d, ecx
mov esi, r10d
xor esi, r8d
not r8d
and r8d, r11d
or r8d, esi
cmp r8d, 0xffffffff
je 0x201095d9
mov r8d, dword [0x2046f180]
lea r8d, [rdx + rdx]
add r8d, 0x1480
mov esi, r8d
not esi
test esi, r8d
jne 0x20109580
jmp 0x20109595
sub rbx, rax
mov qword [rsp + 0x38], rbx
mov eax, dword [0x205b3920]
lea ecx, [rax + 1]
imul ecx, eax
test cl, 1
jne 0x2010962a
mov r8d, dword [0x2046f178]
mov ecx, dword [0x205b3920]
lea eax, [rcx - 1]
imul eax, ecx
mov ecx, dword [0x205445ac]
mov edx, ecx
xor edx, 0x112bb676
not ecx
and ecx, 0x6ed44989
or ecx, edx
not ecx
lea ecx, [rdx + rcx*2]
xor edx, edx
div ecx
test edx, edx
je 0x20109632
mov eax, dword [0x2046f178]
jmp 0x201095f2
mov dword [rsp + 0x30], r8d
mov ecx, dword [0x205445b0]
add ecx, r12d
add cl, 2
mov rax, r15
shr rax, cl
mov rcx, rax
mov qword [rsp + 0x58], rax
lea r13, [rax - 1]
mov qword [rsp + 0x40], r13
shr r13, 1
mov qword [rsp + 0x50], r15
xor r15, 0xfffffffffffffffb
mov qword [rsp + 0x60], r15
lea rsi, [rsp + 0x70]
mov eax, 0x112bb674
lea rbp, [fcn.201091c0]
mov r15d, 0x112bb6a7
xor r10d, r10d
nop word cs:[rax + rax]
lea rcx, [rdi + r9*4]
add rcx, 0xfffffffffffffffc
cmp rsi, rcx
je 0x201096a3
mov ecx, dword [rcx]
mov dword [rsp + 0x70], ecx
lea rcx, [r9 - 1]
mov qword [rsp + 0x48], rcx
cmp r13, r9
jge 0x201096f0
test byte [rsp + 0x60], 4
jne 0x20109770
cmp rcx, r13
jne 0x20109770
mov edx, dword [0x205b3920]
mov r8d, 0xbffc7a9f
sub r8d, edx
imul r8d, edx
test r8b, 1
mov r11b, 1
jne 0x201098d0
jmp 0x20109780
mov rdx, qword [rsp + 0x48]
jmp 0x20109708
mov rdx, rcx
cmp rcx, r13
jge 0x201096b1
lea r14, [rdx + rdx]
mov rcx, qword [0x205445b0]
lea rsi, [r12 + rcx]
lea rbx, [rsi + rdx*2]
add rcx, r12
inc rcx
mov r11, r14
not r11
mov r8, r14
xor r8, rcx
not rcx
and rcx, r11
or rcx, r8
not rcx
or rcx, r14
or rcx, 1
mov r8d, dword [rdi + rbx*4 + 8]
cmp r8d, dword [rdi + rcx*4]
lea r8, [rsi + rdx*2 + 2]
cmovae rcx, r8
cmp rdx, rcx
je 0x20109700
mov r8d, dword [rdi + rcx*4]
add r8d, dword [0x205b3930]
mov dword [rdi + rdx*4], r8d
jmp 0x20109700
mov r11, rcx
jmp 0x201097a7
test r11b, r11b
je 0x201098d0
mov rdx, qword [rsp + 0x40]
mov r11, rdx
cmp rcx, rdx
je 0x201097a7
mov rdx, qword [rsp + 0x58]
mov edx, dword [rdi + rdx*4 - 4]
mov dword [rdi + rcx*4], edx
mov r11, qword [rsp + 0x40]
mov ecx, dword [0x205b3920]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x205445ac]
add ecx, eax
cmp edx, ecx
mov ecx, dword [0x205b3920]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x205445ac]
add ecx, eax
cmp edx, ecx
jne 0x201097c0
cmp r11, r9
mov r14, qword [rsp + 0x28]
jge 0x20109970
mov rdx, r11
mov ecx, dword [0x205445ac]
mov r8d, 0x112bb675
add ecx, r8d
lea r8d, [rbp + rbp + 0x1f20]
test r8d, ecx
mov r11d, 0x112bb6c2
mov ecx, dword [0x205b3924]
mov r8d, dword [0x205445ac]
add r8d, r11d
cmp ecx, r8d
jge 0x2010980c
lea rcx, [rdi + rdx*4]
mov qword [rsp + 0x68], rcx
mov ecx, dword [0x205441a4]
mov edx, ecx
xor edx, 1
mov r8d, dword [0x205b3920]
nop dword [rax]
mov r8d, dword [0x205b3924]
mov r11d, dword [0x205445ac]
add r11d, r15d
cmp r8d, r11d
jge 0x20109840
mov r11d, ecx
and r11d, 1
mov r8d, dword [0x205b3924]
nop word cs:[rax + rax]
mov r8d, dword [0x205b3920]
lea esi, [r8 - 1]
imul esi, r8d
test sil, 1
jne 0x20109870
lea edx, [rdx + r11*2]
mov r11d, edx
mov dword [0x205441a4], edx
nop word cs:[rax + rax]
mov edx, dword [0x205b3920]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x201098b9
test r10b, r10b
je 0x201098f0
mov edx, dword [0x205b3924]
cmp edx, 0x3f
jge 0x201098a0
jmp 0x201098b4
mov edx, dword [0x205b3920]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x201098d0
jmp 0x20109780
xor r11d, ecx
not r11d
mov dword [rsp + 0x24], r11d
test r11d, ecx
jne 0x2010992f
mov edx, dword [0x205b3920]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
je 0x2010991f
mov edx, dword [0x205b3924]
cmp edx, 0x1f
jge 0x20109900
test r10b, r10b
jne 0x20109914
cmp dword [rsp + 0x30], 0
jg 0x20109a3d
xor ebx, ebx
lea rsi, [rsp + 0x70]
mov rdx, qword [rsp + 0x68]
cmp rdx, rsi
je 0x20109948
mov r8d, dword [rsp + 0x70]
mov dword [rdx], r8d
test r10b, r10b
test r10b, r10b
jne 0x2010994b
cmp r9, 1
mov r9, qword [rsp + 0x48]
jg 0x20109690
jmp 0x20109bf5
mov esi, dword [rsp + 0x70]
jmp 0x2010998c
mov r11, rdx
cmp rdx, r9
jl 0x201097ec
lea rdx, [r11 - 1]
mov ecx, dword [0x205445b0]
add ecx, r12d
inc cl
sar rdx, cl
mov ecx, dword [rdi + rdx*4]
cmp ecx, esi
jae 0x201097e9
cmp r11, rdx
jne 0x201099e0
mov ecx, dword [0x205b3924]
mov r8d, dword [0x205445ac]
mov r11d, r8d
xor r11d, 0x112bb6ca
and r8d, 0x112bb6ca
lea r8d, [r11 + r8*2]
cmp ecx, r8d
mov r8b, 1
jge 0x20109a30
jmp 0x20109a20
mov r8d, dword [0x205b3920]
lea ebx, [r8 - 1]
imul ebx, r8d
test bl, 1
jne 0x20109a0c
mov dword [rdi + r11*4], ecx
mov r8d, dword [0x205b3920]
lea ebx, [r8 - 1]
imul ebx, r8d
test bl, 1
je 0x201099ae
mov dword [rdi + r11*4], ecx
mov r8d, dword [0x205b3924]
cmp r8d, 0x5c
jge 0x201099e0
jmp 0x201099f4
test r8b, r8b
jne 0x20109980
nop dword [rax]
mov ecx, dword [0x205b3924]
cmp ecx, 0x2f
jge 0x20109a30
jmp 0x20109a20
xor esi, esi
xor ebx, ebx
jmp 0x20109a5f
cmp esi, dword [rsp + 0x30]
mov r14, qword [rsp + 0x28]
jge 0x20109931
movsxd r11, esi
mov edx, dword [0x205b3924]
cmp edx, 0x35
mov edx, dword [0x205b3924]
cmp edx, 0x10
jg 0x20109a6b
add r11, qword [rsp + 0x38]
mov r11, qword [r11]
mov edx, dword [0x205b3920]
lea r8d, [rdx - 1]
imul r8d, edx
and r8d, 1
mov edx, dword [0x205445ac]
add edx, eax
cmp r8d, edx
jne 0x20109bc0
nop word cs:[rax + rax]
mov edx, dword [0x205b3924]
cmp edx, 0x3e
jge 0x20109bc0
mov edx, dword [0x205b3920]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x20109b4f
nop word cs:[rax + rax]
mov edx, dword [0x205b3920]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x20109b4f
not r11
mov rdx, r11
or rdx, rbx
not rdx
and rbx, r11
or rbx, rdx
add esi, 8
mov edx, dword [0x205b3920]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x20109be0
jmp 0x20109bd0
mov edx, dword [0x205b3920]
lea r8d, [rdx - 1]
imul r8d, edx
and r8d, 1
mov edx, dword [0x205445ac]
add edx, eax
cmp r8d, edx
je 0x20109ae0
test r10b, r10b
jne 0x20109b80
nop word cs:[rax + rax]
mov edx, dword [0x205b3920]
mov r8d, dword [0x205445ac]
add r8d, edx
dec r8d
imul r8d, edx
test r8b, 1
je 0x20109b30
nop dword [rax]
mov edx, dword [0x205445ac]
mov r8d, edx
xor r8d, 0x112bb675
mov r14d, edx
and r14d, 0x112bb675
lea r8d, [r8 + r14*2]
lea r14d, [rbp + rbp + 0x1bc0]
and r14d, r8d
add edx, 0x112bb674
cmp r14d, edx
jne 0x20109b80
jmp 0x20109b60
mov edx, dword [0x205b3924]
cmp edx, 0x4c
jge 0x20109bc0
jmp 0x20109ab0
mov edx, dword [0x205b3924]
cmp edx, 0x3e
jl 0x20109a50
nop
lea edx, [rbp + rbp + 0x2020]
mov r8d, edx
xor r8d, 0xfffffffe
test edx, r8d
jne 0x20109be0
jmp 0x20109bd0
cmp qword [rsp + 0x50], 5
mov ebp, dword [rsp + 0x24]
jl 0x20109feb
movabs rdx, 0xdf6c9c52cc008ff1
movabs rax, 0xb95d3cb1d506dc5
and ebp, ecx
lea rcx, [rdx + rax]
mov qword [rsp + 0x38], rcx
not rax
mov qword [rsp + 0x30], rax
xor r13d, r13d
mov r9d, 0x112bb675
lea r10, [fcn.201091c0]
mov eax, 0x112bb6ad
mov r11b, 1
mov dword [rsp + 0x24], ebp
jmp 0x20109c7f
movabs r8, 0x13b450dbbe7a94f6
lea rdx, [r12 + r8]
add rdx, qword [0x205445b0]
sub rdx, r8
add rdx, 4
cmp rcx, rdx
movabs rdx, 0xdf6c9c52cc008ff1
jle 0x20109feb
add r14, 0xfffffffffffffffc
cmp rsi, r14
je 0x20109c8f
mov ecx, dword [r14]
mov dword [rsp + 0x70], ecx
cmp r14, rdi
je 0x20109c99
mov ecx, dword [rdi]
mov dword [r14], ecx
mov ecx, dword [0x205b3924]
cmp ecx, 0x5c
jge 0x20109d50
nop dword [rax + rax]
mov ecx, dword [0x205b3924]
cmp ecx, 0xd
jg 0x20109d30
mov rsi, qword [0x2046f168]
cmp ebp, 1
mov r8, rdx
adc r8, 0xffffffffffffffff
mov ecx, dword [0x205b3924]
cmp ecx, 0x25
jge 0x20109d30
mov ecx, dword [0x205b3924]
cmp ecx, 0x60
jg 0x20109d50
mov qword [rsp + 0x28], r14
movabs rdx, 0xeb58e6925e352f92
mov rcx, rdx
sub rcx, r8
add rcx, qword [rsp + 0x38]
sub rcx, rdx
add rcx, qword [rsp + 0x30]
sub rsi, rbx
mov edx, dword [0x205b3920]
lea r8d, [rdx - 1]
imul r8d, edx
test r8b, 1
jne 0x20109df0
jmp 0x20109d60
mov rcx, qword [0x2046f168]
test r11b, r11b
je 0x20109d30
jmp 0x20109cbb
mov rcx, qword [0x2046f168]
jmp 0x20109cb0
mov edx, dword [0x205b3924]
cmp edx, 0xe
jge 0x20109df0
mov rdx, rsi
not rdx
mov r8, rcx
not r8
mov r14, rsi
and r14, r8
xor r8, rdx
and rdx, rcx
or r14, rdx
and rsi, rcx
or rsi, r8
not rsi
or rsi, r14
not rsi
mov r8d, 0x112bb674
nop
mov ecx, dword [0x205b3920]
lea edx, [rcx - 1]
imul edx, ecx
and edx, 1
mov ecx, dword [0x205445ac]
add ecx, r8d
cmp edx, ecx
jne 0x20109dd3
mov ecx, dword [0x205445b0]
add ecx, r12d
add cl, 0x20
mov r14, rsi
shr r14, cl
test r13b, r13b
je 0x20109e10
cmp dword [0x205445ac], 0xeed4498c
jne 0x20109da0
jmp 0x20109dbc
cmp dword [0x205445ac], 0xeed4498c
jne 0x20109df0
jmp 0x20109d60
test r13b, r13b
je 0x20109e27
mov ecx, dword [0x205b3924]
mov edx, dword [0x205445ac]
add edx, eax
cmp ecx, edx
jge 0x20109e10
mov ecx, dword [0x205b3924]
cmp ecx, 0x45
mov ecx, dword [0x205445ac]
add ecx, r9d
lea edx, [r10 + r10]
add edx, 0x300
test edx, ecx
jne 0x20109e30
mov ecx, dword [0x205b3924]
cmp ecx, 0x16
jg 0x20109e15
mov ecx, esi
and ecx, r14d
xor r14d, esi
or r14d, ecx
add dword [0x205b3930], r14d
mov rcx, qword [0x205b3928]
add rcx, qword [rsp + 0x28]
sub rcx, rdi
mov rdx, rcx
sar rdx, 2
movabs rsi, 0xd8da0588fd60f354
lea r8, [r12 + rsi]
movabs r14, 0xbb5db76ca0e6ee15
sub r8, r14
sub r8, rsi
add r8, qword [0x205445b0]
add r8, r14
lea r14, [rdx + r8]
dec r14
mov r8, r14
sar r8, 1
cmp rcx, 8
jle 0x20109f00
xor esi, esi
jmp 0x20109ecf
mov ebp, dword [rdi + r15*4]
mov dword [rdi + rsi*4], ebp
mov rsi, r15
cmp r15, r8
jge 0x20109f03
lea r15, [rsi + rsi]
mov ebp, dword [rdi + r15*4 + 8]
cmp ebp, dword [rdi + r15*4 + 4]
jb 0x20109ef0
lea r15, [rsi + rsi]
add r15, 2
cmp rsi, r15
je 0x20109ec7
jmp 0x20109ec0
lea r15, [rsi + rsi]
inc r15
cmp rsi, r15
je 0x20109ec7
jmp 0x20109ec0
xor r15d, r15d
mov rsi, rcx
not rsi
mov rbp, rcx
xor rbp, 4
mov edx, ebp
and edx, 4
and rsi, 0xfffffffffffffffb
or rsi, rdx
and rbp, rcx
or rbp, rsi
cmp rbp, 0xffffffffffffffff
jne 0x20109f40
cmp r15, r8
jne 0x20109f40
cmp r15, r14
je 0x20109f43
mov edx, dword [rdi + r14*4]
mov dword [rdi + r15*4], edx
jmp 0x20109f43
mov r14, r15
mov rdx, qword [0x205445b0]
add rdx, r12
cmp r14, rdx
jle 0x20109f93
mov r8d, dword [rsp + 0x70]
jmp 0x20109f69
mov r14, r15
cmp rsi, 2
jb 0x20109f90
lea rsi, [r14 - 1]
mov r15, rsi
shr r15, 1
mov ebp, dword [rdi + r15*4]
cmp ebp, r8d
jae 0x20109f93
cmp r14, r15
je 0x20109f60
mov dword [rdi + r14*4], ebp
jmp 0x20109f60
xor r14d, r14d
lea rsi, [rsp + 0x70]
mov ebp, dword [rsp + 0x24]
lea r8, [rdi + r14*4]
cmp r8, rsi
je 0x20109fac
mov edx, dword [rsp + 0x70]
mov dword [r8], edx
mov edx, dword [0x205b3924]
cmp edx, 0x3c
mov r14, qword [rsp + 0x28]
jg 0x20109fd0
nop dword [rax]
cmp dword [0x205445ac], 0xeed4498c
je 0x20109c50
mov edx, dword [0x205b3920]
mov r8d, 1
sub r8d, edx
imul r8d, edx
test r8b, 1
jne 0x20109fd0
jmp 0x20109fc0
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.204278f0
nop
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret