Function at 0x1000e34e
Capabilities:
Validate payment card number using luhn algorithm

Disassembly:
push 0x40
mov eax, 0x1007d92e
call fcn.1007b1a4
mov edx, ecx
mov dword [ebp - 0x14], edx
mov eax, dword [ebp + 8]
lea edi, [ebp - 0x4c]
mov esi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [ebp - 0x40], eax
mov esi, dword [ebp - 0x4c]
xor ecx, ecx
mov eax, esi
mov dword [ebp - 4], ecx
sub eax, dword [ebp - 0x44]
xorps xmm1, xmm1
mov dword [ebp - 0x2c], eax
cmp byte [esi], 0x2d
movsd qword [ebp - 0x3c], xmm1
jne 0x1000e392
inc esi
mov ah, 1
mov dword [ebp - 0x4c], esi
jmp 0x1000e394
mov ah, cl
mov al, byte [esi]
xorps xmm0, xmm0
mov byte [ebp - 0xf], ah
movlpd qword [ebp - 0x34], xmm0
mov byte [ebp - 0xe], cl
mov dword [ebp - 0x1c], ecx
cmp al, 0x30
jne 0x1000e3b7
inc esi
mov dword [ebp - 0x28], ecx
mov dword [ebp - 0x4c], esi
jmp 0x1000e45c
cmp al, 0x31
jl 0x1000e98e
cmp al, 0x39
jg 0x1000e98e
inc esi
movsx ecx, al
sub ecx, 0x30
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x28], ecx
mov al, byte [esi]
test ah, ah
je 0x1000e421
cmp al, 0x30
jl 0x1000e45c
mov edi, esi
cmp al, 0x39
ja 0x1000e45c
cmp ecx, 0xccccccc
jb 0x1000e3f4
jne 0x1000e419
mov edi, esi
cmp al, 0x38
ja 0x1000e419
movsx eax, byte [edi]
lea esi, [edi + 1]
imul ecx, ecx, 0xa
mov dword [ebp - 0x4c], esi
add ecx, 0xffffffd0
add ecx, eax
mov al, byte [esi]
inc dword [ebp - 0x1c]
mov dword [ebp - 0x28], ecx
cmp al, 0x30
jl 0x1000e45c
mov edi, esi
cmp al, 0x39
jle 0x1000e3e4
jmp 0x1000e45c
xor eax, eax
mov byte [ebp - 0xe], 1
jmp 0x1000e462
cmp al, 0x30
jl 0x1000e45c
mov al, byte [esi]
jmp 0x1000e456
cmp ecx, 0x19999999
jb 0x1000e439
jne 0x1000e419
mov edi, esi
cmp al, 0x35
jg 0x1000e419
movsx eax, byte [edi]
lea esi, [edi + 1]
imul ecx, ecx, 0xa
mov dword [ebp - 0x4c], esi
add ecx, 0xffffffd0
add ecx, eax
mov al, byte [esi]
inc dword [ebp - 0x1c]
mov dword [ebp - 0x28], ecx
cmp al, 0x30
jl 0x1000e45c
mov edi, esi
cmp al, 0x39
jle 0x1000e429
mov ecx, dword [ebp - 0x34]
mov eax, dword [ebp - 0x30]
cmp byte [ebp - 0xe], 0
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x20], eax
mov byte [ebp - 0xd], 0
je 0x1000e5d1
cmp byte [ebp - 0xf], 0
je 0x1000e527
mov dl, byte [esi]
mov byte [ebp - 0x10], dl
cmp dl, 0x30
mov edx, dword [ebp - 0x14]
jl 0x1000e5d1
cmp byte [ebp - 0x10], 0x39
mov edi, esi
jg 0x1000e5d1
mov dl, byte [ebp - 0x10]
mov dword [ebp - 0x24], edi
cmp eax, 0xccccccc
jb 0x1000e4d7
ja 0x1000e4b4
cmp ecx, 0xcccccccc
jb 0x1000e4d7
cmp ecx, 0xcccccccc
jne 0x1000e5bb
cmp eax, 0xccccccc
jne 0x1000e5bb
mov dword [ebp - 0x24], edi
cmp dl, 0x38
ja 0x1000e5bb
mov edx, dword [ebp - 0x24]
xor esi, esi
push 0xa
movsx edi, byte [edx]
lea ecx, [edx + 1]
mov dword [ebp - 0x4c], ecx
sub edi, 0x30
pop ecx
mul ecx
push 0xa
mov ecx, eax
mov eax, dword [ebp - 0x18]
pop edx
mul edx
add ecx, edx
add edi, eax
adc esi, ecx
inc dword [ebp - 0x1c]
mov eax, esi
mov ecx, edi
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x20], eax
mov dl, byte [esi]
cmp dl, 0x30
jl 0x1000e5ce
mov dword [ebp - 0x24], esi
mov edi, esi
cmp dl, 0x39
jle 0x1000e4a3
jmp 0x1000e5ce
mov cl, byte [esi]
mov byte [ebp - 0x10], cl
cmp cl, 0x30
mov ecx, dword [ebp - 0x18]
jl 0x1000e5d1
cmp byte [ebp - 0x10], 0x39
mov edi, esi
jg 0x1000e5d1
mov dl, byte [ebp - 0x10]
mov dword [ebp - 0x24], edi
cmp eax, 0x19999999
jb 0x1000e572
ja 0x1000e55b
cmp ecx, 0x99999999
jb 0x1000e572
cmp ecx, 0x99999999
jne 0x1000e5bb
cmp eax, 0x19999999
jne 0x1000e5bb
mov dword [ebp - 0x24], edi
cmp dl, 0x35
ja 0x1000e5bb
mov edx, dword [ebp - 0x24]
xor esi, esi
push 0xa
movsx edi, byte [edx]
lea ecx, [edx + 1]
mov dword [ebp - 0x4c], ecx
sub edi, 0x30
pop ecx
mul ecx
push 0xa
mov ecx, eax
mov eax, dword [ebp - 0x18]
pop edx
mul edx
add ecx, edx
add edi, eax
adc esi, ecx
inc dword [ebp - 0x1c]
mov eax, esi
mov ecx, edi
mov esi, dword [ebp - 0x4c]
mov dword [ebp - 0x18], ecx
mov dword [ebp - 0x20], eax
mov dl, byte [esi]
cmp dl, 0x30
jl 0x1000e5ce
mov dword [ebp - 0x24], esi
mov edi, esi
cmp dl, 0x39
jle 0x1000e54a
jmp 0x1000e5ce
mov edx, eax
call fcn.1007bad0
movaps xmm1, xmm0
mov byte [ebp - 0xd], 1
movsd qword [ebp - 0x3c], xmm1
mov edx, dword [ebp - 0x14]
cmp byte [ebp - 0xd], 0
je 0x1000e610
mov al, byte [esi]
cmp al, 0x30
jl 0x1000e610
mov ecx, esi
cmp al, 0x39
ja 0x1000e608
movsx eax, byte [ecx]
lea esi, [ecx + 1]
mulsd xmm1, qword [0x100865d8]
sub eax, 0x30
mov ecx, esi
movd xmm0, eax
mov al, byte [esi]
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm0
cmp al, 0x30
jge 0x1000e5df
mov dword [ebp - 0x4c], esi
movsd qword [ebp - 0x3c], xmm1
mov al, byte [esi]
and dword [ebp - 0x24], 0
cmp al, 0x2e
jne 0x1000e61e
inc esi
mov dword [ebp - 0x4c], esi
mov edi, esi
cmp al, 0x2e
jne 0x1000e6d7
mov al, byte [edi]
cmp al, 0x30
jl 0x1000e6ff
cmp al, 0x39
jg 0x1000e6ff
mov al, byte [ebp - 0xd]
test al, al
jne 0x1000e666
cmp byte [ebp - 0xe], al
je 0x1000e64e
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
jmp 0x1000e653
mov ecx, dword [ebp - 0x28]
xor edx, edx
call fcn.1007bad0
movaps xmm1, xmm0
movsd qword [ebp - 0x3c], xmm0
mov byte [ebp - 0xd], 1
jmp 0x1000e66e
movsd qword [ebp - 0x3c], xmm1
mov byte [ebp - 0xd], al
mov cl, byte [esi]
mov eax, edi
mov dword [ebp - 0x30], edi
mov edx, edi
mov esi, edi
mov edi, edx
cmp cl, 0x39
jg 0x1000e6d7
mov edx, dword [ebp - 0x1c]
cmp edx, 0x11
jge 0x1000e6c2
mulsd xmm1, qword [0x100865d8]
lea edi, [eax + 1]
movsx eax, byte [eax]
mov ecx, edi
sub eax, 0x30
mov dword [ebp - 0x4c], ecx
dec dword [ebp - 0x24]
movd xmm0, eax
cvtdq2pd xmm0, xmm0
addsd xmm1, xmm0
comisd xmm1, xmmword [0x100865d0]
movsd qword [ebp - 0x3c], xmm1
jbe 0x1000e6ca
inc edx
mov dword [ebp - 0x1c], edx
jmp 0x1000e6ca
lea edi, [esi + 1]
mov ecx, edi
mov dword [ebp - 0x4c], ecx
mov cl, byte [ecx]
mov eax, edi
mov esi, eax
mov edx, eax
cmp cl, 0x30
jge 0x1000e679
xor ecx, ecx
cmp byte [edi], 0x65
je 0x1000e6e7
cmp byte [edi], 0x45
jne 0x1000e88c
lea esi, [edi + 1]
mov dword [ebp - 0x4c], esi
cmp byte [ebp - 0xd], cl
jne 0x1000e748
cmp byte [ebp - 0xe], cl
je 0x1000e732
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x20]
jmp 0x1000e737
cmp dword [edx + 0x18], 0
je 0x1000e720
push 0x628
push str.C:UsersdstorDownloadsiswearitsnotcelestial_main__1_iswearitsnotcelestial_maincore_features_rpclib_rapidjson_reader.h
push str._HasParseError__
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov edx, dword [ebp - 0x14]
add esp, 0xc
sub edi, dword [ebp - 0x44]
mov dword [edx + 0x18], 0xe
mov dword [edx + 0x1c], edi
jmp 0x1000e9bb
mov ecx, dword [ebp - 0x28]
xor edx, edx
call fcn.1007bad0
movaps xmm1, xmm0
mov byte [ebp - 0xd], 1
movsd qword [ebp - 0x3c], xmm1
xor dl, dl
cmp byte [esi], 0x2b
mov byte [ebp - 0x10], dl
je 0x1000e75c
cmp byte [esi], 0x2d
jne 0x1000e760
inc dl
mov byte [ebp - 0x10], dl
inc esi
mov dword [ebp - 0x4c], esi
mov cl, byte [esi]
mov al, cl
sub al, 0x30
cmp al, 9
ja 0x1000e859
movsx ecx, cl
inc esi
sub ecx, 0x30
mov dword [ebp - 0x4c], esi
mov dword [ebp - 0x30], ecx
test dl, dl
je 0x1000e806
mov edi, dword [ebp - 0x24]
test edi, edi
jle 0x1000e7aa
push 0x668
push str.C:UsersdstorDownloadsiswearitsnotcelestial_main__1_iswearitsnotcelestial_maincore_features_rpclib_rapidjson_reader.h
push str.expFrac___0
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
movsd xmm1, qword [ebp - 0x3c]
add esp, 0xc
mov ecx, dword [ebp - 0x30]
lea eax, [edi + 0x7ffffff7]
push 0xa
pop edi
cdq
idiv edi
cmp byte [esi], 0x30
mov edi, eax
mov dword [ebp - 0x30], edi
jl 0x1000e838
mov dl, byte [esi]
cmp dl, 0x39
jg 0x1000e838
movsx eax, byte [esi]
lea edx, [esi + 1]
imul ecx, ecx, 0xa
mov esi, edx
mov dword [ebp - 0x4c], edx
add ecx, 0xffffffd0
add ecx, eax
cmp ecx, edi
jle 0x1000e7fd
mov al, byte [edx]
cmp al, 0x30
jl 0x1000e7fd
mov edi, edx
cmp al, 0x39
ja 0x1000e7f7
lea esi, [edi + 1]
mov edx, esi
mov edi, esi
mov al, byte [edx]
cmp al, 0x30
jge 0x1000e7e6
mov edi, dword [ebp - 0x30]
mov dword [ebp - 0x4c], edx
mov dl, byte [edx]
cmp dl, 0x30
jge 0x1000e7c2
jmp 0x1000e838
mov eax, dword [ebp - 0x24]
mov edi, 0x134
sub edi, eax
cmp byte [esi], 0x30
jl 0x1000e88f
mov al, byte [esi]
cmp al, 0x39
jg 0x1000e88c
movsx eax, byte [esi]
lea edx, [esi + 1]
imul ecx, ecx, 0xa
mov dword [ebp - 0x4c], edx
add ecx, 0xffffffd0
add ecx, eax
cmp ecx, edi
jg 0x1000e845
mov al, byte [edx]
mov esi, edx
cmp al, 0x30
jge 0x1000e817
cmp byte [ebp - 0x10], 0
mov eax, dword [ebp - 0x24]
je 0x1000e88f
neg ecx
jmp 0x1000e88f
mov edi, dword [ebp - 0x14]
cmp dword [edi + 0x18], 0
je 0x1000e8da
push 0x678
jmp 0x1000e8c7
mov edi, dword [ebp - 0x14]
cmp dword [edi + 0x18], 0
je 0x1000e87a
push 0x67d
push str.C:UsersdstorDownloadsiswearitsnotcelestial_main__1_iswearitsnotcelestial_maincore_features_rpclib_rapidjson_reader.h
push str._HasParseError__
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
sub esi, dword [ebp - 0x44]
mov dword [edi + 0x18], 0xf
mov dword [edi + 0x1c], esi
jmp 0x1000e9bb
mov eax, dword [ebp - 0x24]
cmp byte [ebp - 0xd], 0
je 0x1000e90a
add eax, ecx
push eax
push ecx
push ecx
movsd qword [esp], xmm1
call fcn.1000fcc1
fstp qword [ebp - 0x3c]
movsd xmm0, qword [ebp - 0x3c]
add esp, 0xc
comisd xmm0, xmmword [0x100865e0]
jbe 0x1000e8ec
mov edi, dword [ebp - 0x14]
cmp dword [edi + 0x18], 0
je 0x1000e8da
push 0x6ac
push str.C:UsersdstorDownloadsiswearitsnotcelestial_main__1_iswearitsnotcelestial_maincore_features_rpclib_rapidjson_reader.h
push str._HasParseError__
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov dword [edi + 0x18], 0xd
mov eax, dword [ebp - 0x2c]
mov dword [edi + 0x1c], eax
jmp 0x1000e9bb
cmp byte [ebp - 0xf], 0
je 0x1000e8f9
xorps xmm0, xmmword [0x10086600]
push ecx
push ecx
mov ecx, dword [ebp + 0xc]
movsd qword [esp], xmm0
call fcn.1000f4ad
jmp 0x1000e95d
cmp byte [ebp - 0xe], 0
je 0x1000e93f
cmp byte [ebp - 0xf], 0
je 0x1000e92f
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x20]
neg ecx
adc eax, 0
neg eax
push eax
push ecx
mov ecx, dword [ebp + 0xc]
call fcn.1000f5e4
jmp 0x1000e95d
push dword [ebp - 0x20]
mov ecx, dword [ebp + 0xc]
push dword [ebp - 0x18]
call fcn.1000fcff
jmp 0x1000e95d
cmp byte [ebp - 0xf], 0
mov ecx, dword [ebp + 0xc]
je 0x1000e955
mov eax, dword [ebp - 0x28]
neg eax
push eax
call fcn.1000f61c
jmp 0x1000e95d
push dword [ebp - 0x28]
call fcn.1000fd37
test al, al
jne 0x1000e9bb
mov edi, dword [ebp - 0x14]
cmp dword [edi + 0x18], 0
je 0x1000e982
push 0x6c4
push str.C:UsersdstorDownloadsiswearitsnotcelestial_main__1_iswearitsnotcelestial_maincore_features_rpclib_rapidjson_reader.h
push str._HasParseError__
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
add esp, 0xc
mov dword [edi + 0x18], 0x10
jmp 0x1000e8e1
cmp dword [edx + 0x18], ecx
je 0x1000e9ae
push 0x5fd
push str.C:UsersdstorDownloadsiswearitsnotcelestial_main__1_iswearitsnotcelestial_maincore_features_rpclib_rapidjson_reader.h
push str._HasParseError__
call dword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__wassert]
mov edx, dword [ebp - 0x14]
add esp, 0xc
sub esi, dword [ebp - 0x44]
mov dword [edx + 0x18], 3
mov dword [edx + 0x1c], esi
mov edi, dword [ebp + 8]
lea esi, [ebp - 0x4c]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
call fcn.1007b181
ret 8