Function at 0x1000d7c0
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x1000dc5e
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x1000dc5c
cmp eax, 0x29
jne 0x1000d800
cmp dword [esi + 0x10], 0
jne 0x1000dc5c
test dword [esi + 0x50], 0x10000000
je 0x1000dc6b
jmp 0x1000dbf6
cmp eax, 0x2e
jne 0x1000d86a
push 5
lea ecx, [esi + 0x24]
call fcn.1000fea0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000dc3d
cmp byte [eax], 0x5c
jne 0x1000d862
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1000d860
test byte [esi + 0x50], 8
jne 0x1000d83f
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1000d855
cmp cl, 0x29
je 0x1000d855
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1000d860
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1000d855
mov edx, ecx
cmp bl, 0x7d
jne 0x1000d860
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x1000dc3d
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1000dc3d
cmp eax, 0x5c
jne 0x1000d9b9
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000d8bf
cmp byte [eax], 0x5c
jne 0x1000d8bc
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1000d8ba
test byte [esi + 0x50], 8
jne 0x1000d89f
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1000d8b5
cmp cl, 0x29
je 0x1000d8b5
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1000d8ba
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1000d8b5
mov edx, ecx
cmp bl, 0x7d
jne 0x1000d8ba
lea eax, [edx + 1]
jmp 0x1000d8bc
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100103c0
test byte [esi + 0x50], 0x80
je 0x1000d9ad
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1000d946
push 4
lea ecx, [esi + 0x24]
call fcn.1000fea0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000d93a
cmp byte [eax], 0x5c
jne 0x1000d937
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1000d935
test byte [esi + 0x50], 8
jne 0x1000d90d
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1000d923
cmp cl, 0x29
je 0x1000d923
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1000d935
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1000d923
mov edx, ecx
cmp bl, 0x7d
jne 0x1000d935
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.100103c0
jmp 0x1000dc4e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100103c0
jmp 0x1000dc4e
cmp al, 0x42
jne 0x1000d9ad
push 4
lea ecx, [esi + 0x24]
call fcn.1000fea0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000d9a1
cmp byte [eax], 0x5c
jne 0x1000d99e
lea ebx, [eax + 1]
cmp ebx, ecx
je 0x1000d99e
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000d988
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x28
je 0x1000d99b
cmp dl, 0x29
je 0x1000d99b
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1000d99e
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x7b
je 0x1000d99b
cmp dl, 0x7d
jne 0x1000d99e
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100103c0
jmp 0x1000dc4e
mov ecx, esi
call fcn.1000dc90
jmp 0x1000dc44
cmp eax, 0x5b
jne 0x1000da6b
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000da08
cmp byte [eax], 0x5c
jne 0x1000da05
lea edx, [eax + 1]
cmp edx, ecx
je 0x1000da05
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000d9ef
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1000da02
cmp bl, 0x29
je 0x1000da02
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1000da05
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1000da02
cmp dl, 0x7d
jne 0x1000da05
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100103c0
lea ecx, [esi + 0x24]
call fcn.1000d020
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x1000da30
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.1000ff10
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1000da4e
cmp eax, 0x5d
jne 0x1000da4e
push eax
lea ecx, [esi + 0x24]
call fcn.1000cfb0
mov ecx, esi
call fcn.1000ff10
mov ecx, esi
call fcn.1000e690
cmp dword [esi + 0x4c], 0x5d
jne 0x1000dc7d
mov ecx, esi
call fcn.1000ff10
jmp 0x1000dc44
cmp eax, 0x28
jne 0x1000dae4
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000dab6
cmp byte [eax], 0x5c
jne 0x1000dab3
lea edx, [eax + 1]
cmp edx, ecx
je 0x1000dab3
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000da9d
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1000dab0
cmp bl, 0x29
je 0x1000dab0
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1000dab3
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1000dab0
cmp dl, 0x7d
jne 0x1000dab3
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100103c0
mov ecx, esi
call fcn.100105c0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1000dc6b
mov ecx, esi
call fcn.1000ff10
test bl, bl
je 0x1000dc4e
jmp 0x1000dc44
cmp eax, 0x5e
jne 0x1000db48
push 2
lea ecx, [esi + 0x24]
call fcn.1000fea0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000db3c
cmp byte [eax], 0x5c
jne 0x1000db39
lea edx, [eax + 1]
cmp edx, ecx
je 0x1000db39
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000db23
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1000db36
cmp bl, 0x29
je 0x1000db36
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1000db39
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1000db36
cmp dl, 0x7d
jne 0x1000db39
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100103c0
jmp 0x1000dc4e
cmp eax, 0x24
jne 0x1000dbac
push 3
lea ecx, [esi + 0x24]
call fcn.1000fea0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000dba0
cmp byte [eax], 0x5c
jne 0x1000db9d
lea edx, [eax + 1]
cmp edx, ecx
je 0x1000db9d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000db87
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1000db9a
cmp bl, 0x29
je 0x1000db9a
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1000db9d
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1000db9a
cmp dl, 0x7d
jne 0x1000db9d
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.100103c0
jmp 0x1000dc4e
cmp eax, 0x2a
je 0x1000dc62
cmp eax, 0x2b
je 0x1000dc62
cmp eax, 0x3f
je 0x1000dc62
cmp eax, 0x7b
je 0x1000dc62
cmp eax, 0x7d
jne 0x1000dbe4
test dword [esi + 0x50], 0x10000000
je 0x1000dc74
jmp 0x1000dbf6
cmp eax, 0x5d
jne 0x1000dbf6
test dword [esi + 0x50], 0x10000000
je 0x1000dc7d
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1000ce00
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1000dc3d
cmp byte [eax], 0x5c
jne 0x1000dc3b
inc eax
cmp eax, ecx
je 0x1000dc3b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000dc2a
mov dl, byte [eax]
cmp dl, 0x28
je 0x1000dc39
cmp dl, 0x29
je 0x1000dc39
test cl, 0x10
jne 0x1000dc3b
mov al, byte [eax]
cmp al, 0x7b
je 0x1000dc39
cmp al, 0x7d
jne 0x1000dc3b
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.100103c0
mov ecx, esi
call fcn.1000ff70
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x1000d7d6
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.1000f3d0
push 5
mov ecx, esi
call fcn.1000f3d0
push 6
mov ecx, esi
call fcn.1000f3d0
push 4
mov ecx, esi
call fcn.1000f3d0
int3