Function at 0x102c8a50
Capabilities:
Parse credit card information

Disassembly:
push ecx
cmp dword [esp + 8], 0
jne 0x102c8a5c
xor eax, eax
pop ecx
ret
push ebx
push esi
push edi
mov ebx, 0x50
push 0x51
mov dword [esp + 0x10], ebx
call dword [0x10c65338]
mov edi, eax
add esp, 4
test edi, edi
jne 0x102c8a9b
call fcn.102ab5b0
mov esi, eax
call fcn.102ab5f0
mov eax, dword [eax]
mov ecx, dword [esi]
push 0x10364e1c
push eax
call ecx
add esp, 8
pop edi
pop esi
xor eax, eax
pop ebx
pop ecx
ret
mov ecx, dword [esp + 0x14]
push ebp
mov ebp, dword [ecx]
xor esi, esi
test ebp, ebp
je 0x102c8b11
cmp byte [ebp], 0
je 0x102c8b06
mov edi, edi
cmp esi, ebx
jl 0x102c8ace
add ebx, ebx
lea edx, [ebx + 1]
push edx
push edi
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
je 0x102c9575
mov al, byte [ebp]
mov byte [esi + edi], al
add ebp, 1
add esi, 1
cmp byte [ebp], 0
jne 0x102c8ab0
cmp esi, ebx
mov dword [esp + 0x10], ebx
jl 0x102c8b06
add ebx, ebx
lea eax, [ebx + 1]
push eax
push edi
mov dword [esp + 0x18], ebx
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
je 0x102c9575
mov ecx, dword [esp + 0x18]
mov byte [esi + edi], 0x3a
add esi, 1
mov eax, dword [ecx + 4]
test eax, eax
je 0x102c8c79
mov ebx, eax
cmp byte [ebx], 0
je 0x102c938d
lea ebp, [esi + 3]
lea ebx, [ebx]
cmp ebp, dword [esp + 0x10]
jl 0x102c8b58
mov eax, dword [esp + 0x10]
add eax, eax
mov dword [esp + 0x10], eax
add eax, 1
push eax
push edi
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
je 0x102c9575
mov al, byte [ebx]
cmp al, 0x3b
je 0x102c8c5f
cmp al, 0x2f
je 0x102c8c5f
cmp al, 0x3f
je 0x102c8c5f
cmp al, 0x3a
je 0x102c8c5f
cmp al, 0x40
je 0x102c8c5f
cmp al, 0x26
je 0x102c8c5f
cmp al, 0x3d
je 0x102c8c5f
cmp al, 0x2b
je 0x102c8c5f
cmp al, 0x24
je 0x102c8c5f
cmp al, 0x2c
je 0x102c8c5f
cmp al, 0x5b
je 0x102c8c5f
cmp al, 0x5d
je 0x102c8c5f
cmp al, 0x61
jl 0x102c8bc6
cmp al, 0x7a
jle 0x102c8c5f
cmp al, 0x41
jl 0x102c8bd2
cmp al, 0x5a
jle 0x102c8c5f
cmp al, 0x30
jl 0x102c8bde
cmp al, 0x39
jle 0x102c8c5f
cmp al, 0x2d
je 0x102c8c5f
cmp al, 0x5f
je 0x102c8c5f
cmp al, 0x2e
je 0x102c8c5f
cmp al, 0x21
je 0x102c8c5f
cmp al, 0x7e
je 0x102c8c5f
cmp al, 0x2a
je 0x102c8c5f
cmp al, 0x27
je 0x102c8c5f
cmp al, 0x28
je 0x102c8c5f
cmp al, 0x29
je 0x102c8c5f
movzx ecx, al
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
add ebx, 1
sar eax, 4
and ecx, 0x8000000f
jns 0x102c8c20
dec ecx
or ecx, 0xfffffff0
inc ecx
add esi, 1
mov byte [esi + edi - 1], 0x25
add ebp, 1
cmp eax, 9
setle dl
sub dl, 1
and dl, 7
add dl, 0x30
add dl, al
add esi, 1
mov byte [esi + edi - 1], dl
add ebp, 1
cmp ecx, 9
setle al
sub al, 1
and al, 7
add al, 0x30
add al, cl
mov byte [esi + edi], al
add esi, 1
add ebp, 1
jmp 0x102c8c6b
mov byte [esi + edi], al
add esi, 1
add ebp, 1
add ebx, 1
cmp byte [ebx], 0
jne 0x102c8b30
jmp 0x102c938d
cmp dword [ecx + 0xc], 0
je 0x102c8ec2
lea eax, [esi + 3]
cmp eax, ebx
jl 0x102c8ca8
add ebx, ebx
lea ecx, [ebx + 1]
push ecx
push edi
mov dword [esp + 0x18], ebx
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
je 0x102c91fb
mov ecx, dword [esp + 0x18]
mov byte [esi + edi], 0x2f
add esi, 1
mov byte [esi + edi], 0x2f
mov eax, dword [ecx + 0x10]
add esi, 1
test eax, eax
je 0x102c8e2b
mov ebx, eax
cmp byte [ebx], 0
je 0x102c8df4
lea ebp, [esi + 3]
cmp ebp, dword [esp + 0x10]
jl 0x102c8cfc
mov edx, dword [esp + 0x10]
lea eax, [edx + edx]
mov dword [esp + 0x10], eax
add eax, 1
push eax
push edi
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
je 0x102c9575
mov al, byte [ebx]
cmp al, 0x61
jl 0x102c8d0a
cmp al, 0x7a
jle 0x102c8ddf
cmp al, 0x41
jl 0x102c8d16
cmp al, 0x5a
jle 0x102c8ddf
cmp al, 0x30
jl 0x102c8d22
cmp al, 0x39
jle 0x102c8ddf
cmp al, 0x2d
je 0x102c8ddf
cmp al, 0x5f
je 0x102c8ddf
cmp al, 0x2e
je 0x102c8ddf
cmp al, 0x21
je 0x102c8ddf
cmp al, 0x7e
je 0x102c8ddf
cmp al, 0x2a
je 0x102c8ddf
cmp al, 0x27
je 0x102c8ddf
cmp al, 0x28
je 0x102c8ddf
cmp al, 0x29
je 0x102c8ddf
cmp al, 0x3b
je 0x102c8ddf
cmp al, 0x3a
je 0x102c8ddf
cmp al, 0x26
je 0x102c8ddf
cmp al, 0x3d
je 0x102c8ddf
cmp al, 0x2b
je 0x102c8ddf
cmp al, 0x24
je 0x102c8ddf
cmp al, 0x2c
je 0x102c8ddf
movzx ecx, al
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
add ebx, 1
sar eax, 4
and ecx, 0x8000000f
jns 0x102c8da0
dec ecx
or ecx, 0xfffffff0
inc ecx
add esi, 1
mov byte [esi + edi - 1], 0x25
add ebp, 1
cmp eax, 9
setle dl
sub dl, 1
and dl, 7
add dl, 0x30
add dl, al
add esi, 1
mov byte [esi + edi - 1], dl
add ebp, 1
cmp ecx, 9
setle al
sub al, 1
and al, 7
add al, 0x30
add al, cl
mov byte [esi + edi], al
add esi, 1
add ebp, 1
jmp 0x102c8deb
mov byte [esi + edi], al
add esi, 1
add ebp, 1
add ebx, 1
cmp byte [ebx], 0
jne 0x102c8cd3
lea eax, [esi + 3]
cmp eax, dword [esp + 0x10]
jl 0x102c8e20
mov ecx, dword [esp + 0x10]
lea eax, [ecx + ecx]
mov dword [esp + 0x10], eax
add eax, 1
push eax
push edi
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
je 0x102c91fb
mov ebx, dword [esp + 0x10]
mov byte [esi + edi], 0x40
add esi, 1
mov ecx, dword [esp + 0x18]
mov ebp, dword [ecx + 0xc]
cmp byte [ebp], 0
je 0x102c8e6c
cmp esi, ebx
jl 0x102c8e56
add ebx, ebx
lea edx, [ebx + 1]
push edx
push edi
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
je 0x102c9575
mov al, byte [ebp]
mov byte [esi + edi], al
add ebp, 1
add esi, 1
cmp byte [ebp], 0
jne 0x102c8e38
mov dword [esp + 0x10], ebx
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x14], 0
jle 0x102c907a
lea ecx, [esi + 0xa]
cmp ecx, ebx
jl 0x102c8e9f
add ebx, ebx
lea edx, [ebx + 1]
push edx
push edi
mov dword [esp + 0x18], ebx
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
je 0x102c93c3
mov edx, dword [esp + 0x18]
mov eax, dword [edx + 0x14]
push eax
push 0x10364e18
sub ebx, esi
lea ecx, [esi + edi]
push ebx
push ecx
call fcn.1030ad1f
add esp, 0x10
add esi, eax
jmp 0x102c907a
cmp dword [ecx + 8], 0
je 0x102c9041
lea edx, [esi + 3]
cmp edx, ebx
jl 0x102c8ef2
lea eax, [ebx + ebx]
mov dword [esp + 0x10], eax
add eax, 1
push eax
push edi
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
je 0x102c93c3
mov edx, dword [esp + 0x18]
mov byte [esi + edi], 0x2f
add esi, 1
mov byte [esi + edi], 0x2f
mov ebx, dword [edx + 8]
add esi, 1
cmp byte [ebx], 0
je 0x102c907a
lea ebp, [esi + 3]
cmp ebp, dword [esp + 0x10]
jl 0x102c8f3b
mov eax, dword [esp + 0x10]
add eax, eax
mov dword [esp + 0x10], eax
add eax, 1
push eax
push edi
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
je 0x102c9575
mov al, byte [ebx]
cmp al, 0x61
jl 0x102c8f49
cmp al, 0x7a
jle 0x102c902a
cmp al, 0x41
jl 0x102c8f55
cmp al, 0x5a
jle 0x102c902a
cmp al, 0x30
jl 0x102c8f61
cmp al, 0x39
jle 0x102c902a
cmp al, 0x2d
je 0x102c902a
cmp al, 0x5f
je 0x102c902a
cmp al, 0x2e
je 0x102c902a
cmp al, 0x21
je 0x102c902a
cmp al, 0x7e
je 0x102c902a
cmp al, 0x2a
je 0x102c902a
cmp al, 0x27
je 0x102c902a
cmp al, 0x28
je 0x102c902a
cmp al, 0x29
je 0x102c902a
cmp al, 0x24
je 0x102c902a
cmp al, 0x2c
je 0x102c902a
cmp al, 0x3b
je 0x102c902a
cmp al, 0x3a
je 0x102c902a
cmp al, 0x40
je 0x102c902a
cmp al, 0x26
je 0x102c902a
cmp al, 0x3d
je 0x102c902a
cmp al, 0x2b
je 0x102c902a
movzx ecx, al
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
add ebx, 1
sar eax, 4
and ecx, 0x8000000f
jns 0x102c8feb
dec ecx
or ecx, 0xfffffff0
inc ecx
add esi, 1
mov byte [esi + edi - 1], 0x25
add ebp, 1
cmp eax, 9
setle dl
sub dl, 1
and dl, 7
add dl, 0x30
add dl, al
add esi, 1
mov byte [esi + edi - 1], dl
add ebp, 1
cmp ecx, 9
setle al
sub al, 1
and al, 7
add al, 0x30
add al, cl
mov byte [esi + edi], al
add esi, 1
add ebp, 1
jmp 0x102c9036
mov byte [esi + edi], al
add esi, 1
add ebp, 1
add ebx, 1
cmp byte [ebx], 0
jne 0x102c8f13
jmp 0x102c907a
cmp dword [ecx], 0
je 0x102c907a
lea eax, [esi + 3]
cmp eax, ebx
jl 0x102c906c
lea eax, [ebx + ebx]
mov dword [esp + 0x10], eax
add eax, 1
push eax
push edi
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
je 0x102c9575
mov byte [esi + edi], 0x2f
add esi, 1
mov byte [esi + edi], 0x2f
add esi, 1
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x18]
test eax, eax
je 0x102c91c8
mov ebx, eax
cmp byte [ebx], 0
je 0x102c91c8
lea ebp, [esi + 3]
cmp ebp, dword [esp + 0x10]
jl 0x102c90c0
mov ecx, dword [esp + 0x10]
lea eax, [ecx + ecx]
mov dword [esp + 0x10], eax
add eax, 1
push eax
push edi
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
je 0x102c9575
mov al, byte [ebx]
cmp al, 0x61
jl 0x102c90ce
cmp al, 0x7a
jle 0x102c91b3
cmp al, 0x41
jl 0x102c90da
cmp al, 0x5a
jle 0x102c91b3
cmp al, 0x30
jl 0x102c90e6
cmp al, 0x39
jle 0x102c91b3
cmp al, 0x2d
je 0x102c91b3
cmp al, 0x5f
je 0x102c91b3
cmp al, 0x2e
je 0x102c91b3
cmp al, 0x21
je 0x102c91b3
cmp al, 0x7e
je 0x102c91b3
cmp al, 0x2a
je 0x102c91b3
cmp al, 0x27
je 0x102c91b3
cmp al, 0x28
je 0x102c91b3
cmp al, 0x29
je 0x102c91b3
cmp al, 0x2f
je 0x102c91b3
cmp al, 0x3b
je 0x102c91b3
cmp al, 0x40
je 0x102c91b3
cmp al, 0x26
je 0x102c91b3
cmp al, 0x3d
je 0x102c91b3
cmp al, 0x2b
je 0x102c91b3
cmp al, 0x24
je 0x102c91b3
cmp al, 0x2c
je 0x102c91b3
movzx ecx, al
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
add ebx, 1
sar eax, 4
and ecx, 0x8000000f
jns 0x102c9174
dec ecx
or ecx, 0xfffffff0
inc ecx
add esi, 1
mov byte [esi + edi - 1], 0x25
add ebp, 1
cmp eax, 9
setle dl
sub dl, 1
and dl, 7
add dl, 0x30
add dl, al
add esi, 1
mov byte [esi + edi - 1], dl
add ebp, 1
cmp ecx, 9
setle al
sub al, 1
and al, 7
add al, 0x30
add al, cl
mov byte [esi + edi], al
add esi, 1
add ebp, 1
jmp 0x102c91bf
mov byte [esi + edi], al
add esi, 1
add ebp, 1
add ebx, 1
cmp byte [ebx], 0
jne 0x102c9097
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x1c], 0
je 0x102c938d
mov eax, dword [esp + 0x10]
lea ecx, [esi + 3]
cmp ecx, eax
jl 0x102c921e
add eax, eax
mov dword [esp + 0x10], eax
add eax, 1
push eax
push edi
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
jne 0x102c921e
call fcn.102ab5b0
mov esi, eax
call fcn.102ab5f0
mov edx, dword [eax]
mov eax, dword [esi]
push 0x10364e1c
push edx
call eax
add esp, 8
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
pop ecx
ret
mov ecx, dword [esp + 0x18]
mov byte [esi + edi], 0x3f
mov ebx, dword [ecx + 0x1c]
add esi, 1
cmp byte [ebx], 0
je 0x102c938d
lea ebp, [esi + 3]
cmp ebp, dword [esp + 0x10]
jl 0x102c9261
mov edx, dword [esp + 0x10]
lea eax, [edx + edx]
mov dword [esp + 0x10], eax
add eax, 1
push eax
push edi
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
je 0x102c9575
mov al, byte [ebx]
cmp al, 0x61
jl 0x102c926f
cmp al, 0x7a
jle 0x102c9378
cmp al, 0x41
jl 0x102c927b
cmp al, 0x5a
jle 0x102c9378
cmp al, 0x30
jl 0x102c9287
cmp al, 0x39
jle 0x102c9378
cmp al, 0x2d
je 0x102c9378
cmp al, 0x5f
je 0x102c9378
cmp al, 0x2e
je 0x102c9378
cmp al, 0x21
je 0x102c9378
cmp al, 0x7e
je 0x102c9378
cmp al, 0x2a
je 0x102c9378
cmp al, 0x27
je 0x102c9378
cmp al, 0x28
je 0x102c9378
cmp al, 0x29
je 0x102c9378
cmp al, 0x3b
je 0x102c9378
cmp al, 0x2f
je 0x102c9378
cmp al, 0x3f
je 0x102c9378
cmp al, 0x3a
je 0x102c9378
cmp al, 0x40
je 0x102c9378
cmp al, 0x26
je 0x102c9378
cmp al, 0x3d
je 0x102c9378
cmp al, 0x2b
je 0x102c9378
cmp al, 0x24
je 0x102c9378
cmp al, 0x2c
je 0x102c9378
cmp al, 0x5b
je 0x102c9378
cmp al, 0x5d
je 0x102c9378
movzx ecx, al
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
add ebx, 1
sar eax, 4
and ecx, 0x8000000f
jns 0x102c9339
dec ecx
or ecx, 0xfffffff0
inc ecx
add esi, 1
mov byte [esi + edi - 1], 0x25
add ebp, 1
cmp eax, 9
setle dl
sub dl, 1
and dl, 7
add dl, 0x30
add dl, al
add esi, 1
mov byte [esi + edi - 1], dl
add ebp, 1
cmp ecx, 9
setle al
sub al, 1
and al, 7
add al, 0x30
add al, cl
mov byte [esi + edi], al
add esi, 1
add ebp, 1
jmp 0x102c9384
mov byte [esi + edi], al
add esi, 1
add ebp, 1
add ebx, 1
cmp byte [ebx], 0
jne 0x102c9238
mov eax, dword [esp + 0x18]
cmp dword [eax + 0x20], 0
je 0x102c9558
lea ecx, [esi + 3]
cmp ecx, dword [esp + 0x10]
jl 0x102c93e6
mov edx, dword [esp + 0x10]
lea eax, [edx + edx]
mov dword [esp + 0x10], eax
add eax, 1
push eax
push edi
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
jne 0x102c93e6
call fcn.102ab5b0
mov esi, eax
call fcn.102ab5f0
mov eax, dword [eax]
mov ecx, dword [esi]
push 0x10364e1c
push eax
call ecx
add esp, 8
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
pop ecx
ret
mov edx, dword [esp + 0x18]
mov byte [esi + edi], 0x23
mov ebx, dword [edx + 0x20]
add esi, 1
cmp byte [ebx], 0
je 0x102c9558
lea ebp, [esi + 3]
cmp ebp, dword [esp + 0x10]
jl 0x102c9428
mov eax, dword [esp + 0x10]
add eax, eax
mov dword [esp + 0x10], eax
add eax, 1
push eax
push edi
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
je 0x102c9575
mov al, byte [ebx]
cmp al, 0x61
jl 0x102c9436
cmp al, 0x7a
jle 0x102c9543
cmp al, 0x41
jl 0x102c9442
cmp al, 0x5a
jle 0x102c9543
cmp al, 0x30
jl 0x102c944e
cmp al, 0x39
jle 0x102c9543
cmp al, 0x2d
je 0x102c9543
cmp al, 0x5f
je 0x102c9543
cmp al, 0x2e
je 0x102c9543
cmp al, 0x21
je 0x102c9543
cmp al, 0x7e
je 0x102c9543
cmp al, 0x2a
je 0x102c9543
cmp al, 0x27
je 0x102c9543
cmp al, 0x28
je 0x102c9543
cmp al, 0x29
je 0x102c9543
cmp al, 0x3b
je 0x102c9543
cmp al, 0x2f
je 0x102c9543
cmp al, 0x3f
je 0x102c9543
cmp al, 0x3a
je 0x102c9543
cmp al, 0x40
je 0x102c9543
cmp al, 0x26
je 0x102c9543
cmp al, 0x3d
je 0x102c9543
cmp al, 0x2b
je 0x102c9543
cmp al, 0x24
je 0x102c9543
cmp al, 0x2c
je 0x102c9543
cmp al, 0x5b
je 0x102c9543
cmp al, 0x5d
je 0x102c9543
movzx ecx, al
mov eax, ecx
cdq
and edx, 0xf
add eax, edx
add ebx, 1
sar eax, 4
and ecx, 0x8000000f
jns 0x102c9504
dec ecx
or ecx, 0xfffffff0
inc ecx
add esi, 1
mov byte [esi + edi - 1], 0x25
add ebp, 1
cmp eax, 9
setle dl
sub dl, 1
and dl, 7
add dl, 0x30
add dl, al
add esi, 1
mov byte [esi + edi - 1], dl
add ebp, 1
cmp ecx, 9
setle al
sub al, 1
and al, 7
add al, 0x30
add al, cl
mov byte [esi + edi], al
add esi, 1
add ebp, 1
jmp 0x102c954f
mov byte [esi + edi], al
add esi, 1
add ebp, 1
add ebx, 1
cmp byte [ebx], 0
jne 0x102c9400
mov eax, dword [esp + 0x10]
cmp esi, eax
jl 0x102c9598
lea eax, [eax + eax + 1]
push eax
push edi
call dword [0x10c6533c]
mov edi, eax
add esp, 8
test edi, edi
jne 0x102c9598
call fcn.102ab5b0
mov esi, eax
call fcn.102ab5f0
mov ecx, dword [eax]
mov edx, dword [esi]
push 0x10364e1c
push ecx
call edx
add esp, 8
pop ebp
pop edi
pop esi
xor eax, eax
pop ebx
pop ecx
ret
pop ebp
mov byte [esi + edi], 0
mov eax, edi
pop edi
pop esi
pop ebx
pop ecx
ret