Function at 0x102ca1e0
Capabilities:
Parse credit card information

Disassembly:
push ebx
mov ebx, dword [esp + 0xc]
push ebp
mov ebp, dword [esp + 0xc]
push edi
xor edi, edi
cmp ebx, edi
jne 0x102ca1f8
pop edi
pop ebp
or eax, 0xffffffff
pop ebx
ret
push esi
mov esi, dword [ebx]
jmp 0x102ca200
mov al, byte [esi]
cmp al, 0x61
jl 0x102ca20e
cmp al, 0x7a
jle 0x102ca2b0
cmp al, 0x41
jl 0x102ca21a
cmp al, 0x5a
jle 0x102ca2b0
cmp al, 0x30
jl 0x102ca226
cmp al, 0x39
jle 0x102ca2b0
cmp al, 0x2d
je 0x102ca2b0
cmp al, 0x5f
je 0x102ca2b0
cmp al, 0x2e
je 0x102ca2b0
cmp al, 0x21
je 0x102ca2b0
cmp al, 0x7e
je 0x102ca2b0
cmp al, 0x2a
je 0x102ca2b0
cmp al, 0x27
je 0x102ca2b0
cmp al, 0x28
je 0x102ca2b0
cmp al, 0x29
je 0x102ca2b0
cmp al, 0x25
jne 0x102ca294
mov cl, byte [esi + 1]
cmp cl, 0x30
jl 0x102ca25f
cmp cl, 0x39
jle 0x102ca273
cmp cl, 0x61
jl 0x102ca269
cmp cl, 0x66
jle 0x102ca273
cmp cl, 0x41
jl 0x102ca294
cmp cl, 0x46
jg 0x102ca294
mov cl, byte [esi + 2]
cmp cl, 0x30
jl 0x102ca280
cmp cl, 0x39
jle 0x102ca2b0
cmp cl, 0x61
jl 0x102ca28a
cmp cl, 0x66
jle 0x102ca2b0
cmp cl, 0x41
jl 0x102ca294
cmp cl, 0x46
jle 0x102ca2b0
cmp al, 0x3b
je 0x102ca2b0
cmp al, 0x3a
je 0x102ca2b0
cmp al, 0x26
je 0x102ca2b0
cmp al, 0x3d
je 0x102ca2b0
cmp al, 0x2b
je 0x102ca2b0
cmp al, 0x24
je 0x102ca2b0
cmp al, 0x2c
jne 0x102ca2c4
cmp al, 0x25
jne 0x102ca2bc
add esi, 3
jmp 0x102ca200
add esi, 1
jmp 0x102ca200
cmp byte [esi], 0x40
jne 0x102ca313
cmp ebp, edi
je 0x102ca30e
mov eax, dword [ebp + 0x10]
cmp eax, edi
je 0x102ca2de
push eax
call dword [0x10c65330]
add esp, 4
test byte [ebp + 0x24], 2
mov eax, dword [ebx]
je 0x102ca2fc
mov ecx, esi
sub ecx, eax
push ecx
push eax
call fcn.102aaa70
add esp, 8
mov dword [ebp + 0x18], eax
add esi, 1
jmp 0x102ca32d
mov edx, esi
push edi
sub edx, eax
push edx
push eax
call fcn.102c98b0
add esp, 0xc
mov dword [ebp + 0x10], eax
add esi, 1
jmp 0x102ca32d
cmp ebp, edi
je 0x102ca32b
mov eax, dword [ebp + 0x10]
cmp eax, edi
je 0x102ca328
push eax
call dword [0x10c65330]
add esp, 4
mov dword [ebp + 0x10], edi
mov esi, dword [ebx]
mov al, byte [esi]
cmp al, 0x2f
mov ebx, esi
jne 0x102ca36f
cmp ebp, edi
je 0x102ca638
mov eax, dword [ebp + 8]
cmp eax, edi
je 0x102ca34e
push eax
call dword [0x10c65330]
add esp, 4
mov eax, dword [ebp + 0xc]
cmp eax, edi
mov dword [ebp + 8], edi
je 0x102ca362
push eax
call dword [0x10c65330]
add esp, 4
pop esi
mov dword [ebp + 0xc], edi
mov dword [ebp + 0x14], edi
pop edi
pop ebp
xor eax, eax
pop ebx
ret
cmp al, 0x5b
jne 0x102ca441
lea ebp, [esi + 1]
xor ecx, ecx
mov esi, ebp
xor edi, edi
cmp byte [esi], 0x3a
jne 0x102ca3a6
test ecx, ecx
jne 0x102ca475
test edi, edi
jne 0x102ca39d
add esi, 1
cmp byte [esi], 0x3a
jne 0x102ca475
mov ecx, 1
add esi, ecx
jmp 0x102ca3d2
mov al, byte [esi]
cmp al, 0x30
jl 0x102ca3b0
cmp al, 0x39
jle 0x102ca3c0
cmp al, 0x61
jl 0x102ca3b8
cmp al, 0x66
jle 0x102ca3c0
cmp al, 0x41
jl 0x102ca3c5
cmp al, 0x46
jg 0x102ca3c5
add esi, 1
jmp 0x102ca3a6
cmp edi, 7
je 0x102ca3d2
cmp byte [esi], 0x3a
jne 0x102ca3da
add esi, 1
add edi, 1
cmp edi, 8
jl 0x102ca380
test ecx, ecx
jne 0x102ca3e7
cmp edi, 8
jne 0x102ca475
cmp byte [esi], 0x5d
jne 0x102ca475
mov eax, dword [esp + 0x14]
test eax, eax
je 0x102ca421
mov eax, dword [eax + 0xc]
test eax, eax
je 0x102ca409
push eax
call dword [0x10c65330]
add esp, 4
mov eax, esi
sub eax, ebx
sub eax, 1
push eax
push ebp
call fcn.102aaa70
mov ecx, dword [esp + 0x1c]
add esp, 8
mov dword [ecx + 0xc], eax
mov ebp, dword [esp + 0x14]
add esi, 1
cmp byte [ebx], 0x5b
je 0x102ca58b
cmp edi, 4
jl 0x102ca497
mov al, byte [esi]
cmp al, 0x2e
jne 0x102ca47f
add esi, 1
jmp 0x102ca497
xor edi, edi
mov al, byte [esi]
cmp al, 0x2e
je 0x102ca475
cmp al, 0x30
jl 0x102ca45e
lea ecx, [ecx]
cmp al, 0x39
jg 0x102ca45e
mov al, byte [esi + 1]
add esi, 1
cmp al, 0x30
jge 0x102ca450
cmp edi, 3
je 0x102ca46b
cmp byte [esi], 0x2e
jne 0x102ca428
add esi, 1
add edi, 1
cmp edi, 4
jl 0x102ca443
jmp 0x102ca428
pop esi
pop edi
pop ebp
mov eax, 3
pop ebx
ret
cmp al, 0x61
jl 0x102ca487
cmp al, 0x7a
jle 0x102ca497
cmp al, 0x41
jl 0x102ca58b
cmp al, 0x5a
jg 0x102ca58b
mov al, byte [esi]
cmp al, 0x61
jl 0x102ca4a1
cmp al, 0x7a
jle 0x102ca4c0
cmp al, 0x41
jl 0x102ca4a9
cmp al, 0x5a
jle 0x102ca4c0
cmp al, 0x30
jl 0x102ca581
cmp al, 0x39
jg 0x102ca581
lea esp, [esp]
mov al, byte [esi + 1]
add esi, 1
cmp al, 0x61
jl 0x102ca4ce
cmp al, 0x7a
jle 0x102ca4c0
mov al, byte [esi]
cmp al, 0x41
jl 0x102ca4d8
cmp al, 0x5a
jle 0x102ca4c0
cmp al, 0x30
jl 0x102ca4e0
cmp al, 0x39
jle 0x102ca4c0
cmp al, 0x2d
jne 0x102ca4f1
sub esi, 1
cmp byte [esi], 0x2e
je 0x102ca508
add esi, 1
jmp 0x102ca4c0
cmp al, 0x2e
jne 0x102ca526
mov al, byte [esi - 1]
sub esi, 1
cmp al, 0x2d
je 0x102ca512
cmp al, 0x2e
je 0x102ca51c
add esi, 1
jmp 0x102ca4c0
pop esi
pop edi
pop ebp
mov eax, 5
pop ebx
ret
pop esi
pop edi
pop ebp
mov eax, 6
pop ebx
ret
pop esi
pop edi
pop ebp
mov eax, 7
pop ebx
ret
cmp byte [esi - 1], 0x2e
lea eax, [esi - 1]
mov ecx, esi
jne 0x102ca533
mov ecx, eax
sub ecx, 1
cmp ecx, ebx
jb 0x102ca554
mov al, byte [ecx]
cmp al, 0x61
jl 0x102ca544
cmp al, 0x7a
jle 0x102ca533
cmp al, 0x41
jl 0x102ca54c
cmp al, 0x5a
jle 0x102ca533
cmp al, 0x30
jl 0x102ca554
cmp al, 0x39
jle 0x102ca533
add ecx, 1
cmp ecx, ebx
je 0x102ca561
cmp byte [ecx - 1], 0x2e
jne 0x102ca58b
mov cl, byte [ecx]
cmp cl, 0x61
jl 0x102ca56d
cmp cl, 0x7a
jle 0x102ca58b
cmp cl, 0x41
jl 0x102ca577
cmp cl, 0x5a
jle 0x102ca58b
pop esi
pop edi
pop ebp
mov eax, 8
pop ebx
ret
pop esi
pop edi
pop ebp
mov eax, 4
pop ebx
ret
test ebp, ebp
je 0x102ca5e6
mov eax, dword [ebp + 8]
test eax, eax
je 0x102ca5a0
push eax
call dword [0x10c65330]
add esp, 4
mov dword [ebp + 8], 0
cmp byte [ebx], 0x5b
je 0x102ca5e6
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x102ca5bd
push eax
call dword [0x10c65330]
add esp, 4
test byte [ebp + 0x24], 2
je 0x102ca5d3
mov edx, esi
sub edx, ebx
push edx
push ebx
call fcn.102aaa70
add esp, 8
jmp 0x102ca5e3
mov eax, esi
push 0
sub eax, ebx
push eax
push ebx
call fcn.102c98b0
add esp, 0xc
mov dword [ebp + 0xc], eax
cmp byte [esi], 0x3a
jne 0x102ca632
mov al, byte [esi + 1]
add esi, 1
cmp al, 0x30
jl 0x102ca632
cmp al, 0x39
jg 0x102ca632
test ebp, ebp
je 0x102ca604
mov dword [ebp + 0x14], 0
mov al, byte [esi]
cmp al, 0x30
jl 0x102ca632
lea ebx, [ebx]
cmp al, 0x39
jg 0x102ca632
test ebp, ebp
je 0x102ca628
mov ecx, dword [ebp + 0x14]
movsx edx, al
lea ecx, [ecx + ecx*4]
lea eax, [edx + ecx*2 - 0x30]
mov dword [ebp + 0x14], eax
mov al, byte [esi + 1]
add esi, 1
cmp al, 0x30
jge 0x102ca610
mov ecx, dword [esp + 0x18]
mov dword [ecx], esi
pop esi
pop edi
pop ebp
xor eax, eax
pop ebx
ret