Function at 0x1000d690
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x1000db92
cmp eax, 0x7c
je 0x1000db92
lea edi, [esi + 8]
cmp eax, 0x29
jne 0x1000d6d4
cmp dword [esi + 0x10], 0
jne 0x1000db92
test dword [esi + 0x50], 0x10000000
je 0x1000dba2
jmp 0x1000db27
cmp eax, 0x2e
jne 0x1000d744
push 5
lea ecx, [esi + 0x24]
call fcn.1000dbc0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000db6e
cmp byte [eax], 0x5c
jne 0x1000d954
lea edx, [eax + 1]
cmp edx, ecx
je 0x1000d954
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000d71e
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1000d739
cmp byte [ebp - 1], 0x29
je 0x1000d739
test bl, 0x10
jne 0x1000d954
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1000d739
cmp dl, 0x7d
jne 0x1000d954
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
jmp 0x1000db6e
cmp eax, 0x5c
jne 0x1000d88f
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000d795
cmp byte [eax], 0x5c
jne 0x1000d792
lea edx, [eax + 1]
cmp edx, ecx
je 0x1000d792
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000d77c
mov cl, byte [edx]
mov byte [ebp - 1], cl
mov ecx, eax
cmp byte [ebp - 1], 0x28
je 0x1000d78f
cmp byte [ebp - 1], 0x29
je 0x1000d78f
test bl, 0x10
jne 0x1000d792
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1000d78f
cmp dl, 0x7d
jne 0x1000d792
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1000c3f0
test byte [esi + 0x50], 0x80
je 0x1000d883
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1000d809
push 4
lea ecx, [esi + 0x24]
call fcn.1000dbc0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000d7fd
cmp byte [eax], 0x5c
jne 0x1000d7fa
lea edx, [eax + 1]
cmp edx, ecx
je 0x1000d7fa
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000d7e4
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1000d7f7
cmp bl, 0x29
je 0x1000d7f7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1000d7fa
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1000d7f7
cmp dl, 0x7d
jne 0x1000d7fa
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1000c3f0
jmp 0x1000db7f
cmp al, 0x42
jne 0x1000d883
push 4
lea ecx, [esi + 0x24]
call fcn.1000dbc0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000d877
cmp byte [eax], 0x5c
jne 0x1000d874
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1000d872
test byte [esi + 0x50], 8
jne 0x1000d84a
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1000d860
cmp cl, 0x29
je 0x1000d860
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1000d872
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1000d860
mov edx, ecx
cmp bl, 0x7d
jne 0x1000d872
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.1000c3f0
jmp 0x1000db7f
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1000c3f0
jmp 0x1000db7f
mov ecx, esi
call fcn.1000e8b0
jmp 0x1000db75
cmp eax, 0x5b
jne 0x1000d95c
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000d8e8
cmp byte [eax], 0x5c
jne 0x1000d8e2
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1000d8e0
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000d8c6
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1000d8db
cmp cl, 0x29
je 0x1000d8db
mov ecx, eax
test bl, 0x10
jne 0x1000d8e0
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1000d8db
mov edx, ecx
cmp bl, 0x7d
jne 0x1000d8e0
lea eax, [edx + 1]
jmp 0x1000d8e2
mov eax, ecx
inc eax
lea edi, [esi + 8]
mov dword [esi], eax
mov ecx, esi
call fcn.1000c3f0
mov ecx, esi
call fcn.1000e770
cmp dword [esi + 0x4c], 0x5d
jne 0x1000dbb0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000db6e
cmp byte [eax], 0x5c
jne 0x1000d954
lea edi, [eax + 1]
mov ecx, eax
cmp edi, edx
je 0x1000d952
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1000d932
mov cl, byte [edi]
mov edx, eax
cmp cl, 0x28
je 0x1000d947
cmp cl, 0x29
je 0x1000d947
mov ecx, eax
test bl, 0x10
jne 0x1000d952
mov bl, byte [edi]
mov edx, eax
cmp bl, 0x7b
je 0x1000d947
mov edx, ecx
cmp bl, 0x7d
jne 0x1000d952
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x1000db6e
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1000db6e
cmp eax, 0x28
jne 0x1000da32
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000d9b1
cmp byte [eax], 0x5c
jne 0x1000d9ae
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1000d9ac
test byte [esi + 0x50], 8
jne 0x1000d991
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1000d9a7
cmp cl, 0x29
je 0x1000d9a7
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1000d9ac
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1000d9a7
mov edx, ecx
cmp bl, 0x7d
jne 0x1000d9ac
lea eax, [edx + 1]
jmp 0x1000d9ae
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1000c3f0
mov ecx, esi
call fcn.1000ea00
cmp dword [esi + 0x4c], 0x29
mov bl, al
mov byte [ebp - 1], bl
jne 0x1000dba2
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x1000da1e
cmp byte [eax], 0x5c
jne 0x1000da1b
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1000da16
test byte [esi + 0x50], 8
jne 0x1000d9fb
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1000da11
cmp cl, 0x29
je 0x1000da11
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1000da16
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1000da11
mov edx, ecx
cmp bl, 0x7d
jne 0x1000da16
lea eax, [edx + 1]
jmp 0x1000da18
mov eax, ecx
mov bl, byte [ebp - 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.1000c3f0
test bl, bl
je 0x1000db7f
jmp 0x1000db75
cmp eax, 0x5e
jne 0x1000da86
push 2
lea ecx, [esi + 0x24]
call fcn.1000dbc0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000da7a
cmp byte [eax], 0x5c
jne 0x1000da78
inc eax
cmp eax, ecx
je 0x1000da78
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000da67
mov dl, byte [eax]
cmp dl, 0x28
je 0x1000da76
cmp dl, 0x29
je 0x1000da76
test cl, 0x10
jne 0x1000da78
mov al, byte [eax]
cmp al, 0x7b
je 0x1000da76
cmp al, 0x7d
jne 0x1000da78
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.1000c3f0
jmp 0x1000db7f
cmp eax, 0x24
jne 0x1000dadd
push 3
lea ecx, [esi + 0x24]
call fcn.1000dbc0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000dad1
cmp byte [eax], 0x5c
jne 0x1000dacf
inc eax
cmp eax, ecx
je 0x1000dacf
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000dabe
mov dl, byte [eax]
cmp dl, 0x28
je 0x1000dacd
cmp dl, 0x29
je 0x1000dacd
test cl, 0x10
jne 0x1000dacf
mov al, byte [eax]
cmp al, 0x7b
je 0x1000dacd
cmp al, 0x7d
jne 0x1000dacf
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.1000c3f0
jmp 0x1000db7f
cmp eax, 0x2a
je 0x1000db9b
cmp eax, 0x2b
je 0x1000db9b
cmp eax, 0x3f
je 0x1000db9b
cmp eax, 0x7b
je 0x1000db9b
cmp eax, 0x7d
jne 0x1000db15
test dword [esi + 0x50], 0x10000000
je 0x1000dba9
jmp 0x1000db27
cmp eax, 0x5d
jne 0x1000db27
test dword [esi + 0x50], 0x10000000
je 0x1000dbb0
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1000ef70
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1000db6e
cmp byte [eax], 0x5c
jne 0x1000db6c
inc eax
cmp eax, ecx
je 0x1000db6c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000db5b
mov dl, byte [eax]
cmp dl, 0x28
je 0x1000db6a
cmp dl, 0x29
je 0x1000db6a
test cl, 0x10
jne 0x1000db6c
mov al, byte [eax]
cmp al, 0x7b
je 0x1000db6a
cmp al, 0x7d
jne 0x1000db6c
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.1000c3f0
mov ecx, esi
call fcn.1000ed50
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
je 0x1000db92
cmp eax, 0x7c
jne 0x1000d6b3
pop edi
pop esi
mov al, cl
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.1000c3e0
push 5
call fcn.1000c3e0
push 6
call fcn.1000c3e0
push 4
call fcn.1000c3e0
int3