Function at 0x1000fd10
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x100101ae
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x100101ac
cmp eax, 0x29
jne 0x1000fd50
cmp dword [esi + 0x10], 0
jne 0x100101ac
test dword [esi + 0x50], 0x10000000
je 0x100101bb
jmp 0x10010146
cmp eax, 0x2e
jne 0x1000fdba
push 5
lea ecx, [esi + 0x24]
call fcn.100123f0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1001018d
cmp byte [eax], 0x5c
jne 0x1000fdb2
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1000fdb0
test byte [esi + 0x50], 8
jne 0x1000fd8f
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1000fda5
cmp cl, 0x29
je 0x1000fda5
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1000fdb0
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1000fda5
mov edx, ecx
cmp bl, 0x7d
jne 0x1000fdb0
lea eax, [edx + 1]
inc eax
mov dword [esi], eax
jmp 0x1001018d
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x1001018d
cmp eax, 0x5c
jne 0x1000ff09
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000fe0f
cmp byte [eax], 0x5c
jne 0x1000fe0c
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1000fe0a
test byte [esi + 0x50], 8
jne 0x1000fdef
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1000fe05
cmp cl, 0x29
je 0x1000fe05
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1000fe0a
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1000fe05
mov edx, ecx
cmp bl, 0x7d
jne 0x1000fe0a
lea eax, [edx + 1]
jmp 0x1000fe0c
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012910
test byte [esi + 0x50], 0x80
je 0x1000fefd
mov al, byte [esi + 0x48]
cmp al, 0x62
jne 0x1000fe96
push 4
lea ecx, [esi + 0x24]
call fcn.100123f0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x1000fe8a
cmp byte [eax], 0x5c
jne 0x1000fe87
lea ebx, [eax + 1]
mov ecx, eax
cmp ebx, edx
je 0x1000fe85
test byte [esi + 0x50], 8
jne 0x1000fe5d
mov cl, byte [ebx]
mov edx, eax
cmp cl, 0x28
je 0x1000fe73
cmp cl, 0x29
je 0x1000fe73
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x1000fe85
mov bl, byte [ebx]
mov edx, eax
cmp bl, 0x7b
je 0x1000fe73
mov edx, ecx
cmp bl, 0x7d
jne 0x1000fe85
lea eax, [edx + 1]
mov ecx, esi
inc eax
mov dword [esi], eax
call fcn.10012910
jmp 0x1001019e
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012910
jmp 0x1001019e
cmp al, 0x42
jne 0x1000fefd
push 4
lea ecx, [esi + 0x24]
call fcn.100123f0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000fef1
cmp byte [eax], 0x5c
jne 0x1000feee
lea ebx, [eax + 1]
cmp ebx, ecx
je 0x1000feee
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000fed8
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x28
je 0x1000feeb
cmp dl, 0x29
je 0x1000feeb
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1000feee
mov dl, byte [ebx]
mov ecx, eax
cmp dl, 0x7b
je 0x1000feeb
cmp dl, 0x7d
jne 0x1000feee
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012910
jmp 0x1001019e
mov ecx, esi
call fcn.100101e0
jmp 0x10010194
cmp eax, 0x5b
jne 0x1000ffbb
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1000ff58
cmp byte [eax], 0x5c
jne 0x1000ff55
lea edx, [eax + 1]
cmp edx, ecx
je 0x1000ff55
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000ff3f
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x1000ff52
cmp bl, 0x29
je 0x1000ff52
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x1000ff55
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x1000ff52
cmp dl, 0x7d
jne 0x1000ff55
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012910
lea ecx, [esi + 0x24]
call fcn.1000f570
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x1000ff80
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.10012460
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x1000ff9e
cmp eax, 0x5d
jne 0x1000ff9e
push eax
lea ecx, [esi + 0x24]
call fcn.1000f500
mov ecx, esi
call fcn.10012460
mov ecx, esi
call fcn.10010be0
cmp dword [esi + 0x4c], 0x5d
jne 0x100101cd
mov ecx, esi
call fcn.10012460
jmp 0x10010194
cmp eax, 0x28
jne 0x10010034
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x10010006
cmp byte [eax], 0x5c
jne 0x10010003
lea edx, [eax + 1]
cmp edx, ecx
je 0x10010003
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1000ffed
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x10010000
cmp bl, 0x29
je 0x10010000
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10010003
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x10010000
cmp dl, 0x7d
jne 0x10010003
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012910
mov ecx, esi
call fcn.10012b10
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x100101bb
mov ecx, esi
call fcn.10012460
test bl, bl
je 0x1001019e
jmp 0x10010194
cmp eax, 0x5e
jne 0x10010098
push 2
lea ecx, [esi + 0x24]
call fcn.100123f0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x1001008c
cmp byte [eax], 0x5c
jne 0x10010089
lea edx, [eax + 1]
cmp edx, ecx
je 0x10010089
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10010073
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x10010086
cmp bl, 0x29
je 0x10010086
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x10010089
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x10010086
cmp dl, 0x7d
jne 0x10010089
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012910
jmp 0x1001019e
cmp eax, 0x24
jne 0x100100fc
push 3
lea ecx, [esi + 0x24]
call fcn.100123f0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x100100f0
cmp byte [eax], 0x5c
jne 0x100100ed
lea edx, [eax + 1]
cmp edx, ecx
je 0x100100ed
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100100d7
mov bl, byte [edx]
mov ecx, eax
cmp bl, 0x28
je 0x100100ea
cmp bl, 0x29
je 0x100100ea
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x100100ed
mov dl, byte [edx]
mov ecx, eax
cmp dl, 0x7b
je 0x100100ea
cmp dl, 0x7d
jne 0x100100ed
lea eax, [ecx + 1]
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10012910
jmp 0x1001019e
cmp eax, 0x2a
je 0x100101b2
cmp eax, 0x2b
je 0x100101b2
cmp eax, 0x3f
je 0x100101b2
cmp eax, 0x7b
je 0x100101b2
cmp eax, 0x7d
jne 0x10010134
test dword [esi + 0x50], 0x10000000
je 0x100101c4
jmp 0x10010146
cmp eax, 0x5d
jne 0x10010146
test dword [esi + 0x50], 0x10000000
je 0x100101cd
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1000f350
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1001018d
cmp byte [eax], 0x5c
jne 0x1001018b
inc eax
cmp eax, ecx
je 0x1001018b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x1001017a
mov dl, byte [eax]
cmp dl, 0x28
je 0x10010189
cmp dl, 0x29
je 0x10010189
test cl, 0x10
jne 0x1001018b
mov al, byte [eax]
cmp al, 0x7b
je 0x10010189
cmp al, 0x7d
jne 0x1001018b
inc dword [esi]
inc dword [esi]
mov ecx, esi
call fcn.10012910
mov ecx, esi
call fcn.100124c0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x1000fd26
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
mov ecx, esi
call fcn.10011920
push 5
mov ecx, esi
call fcn.10011920
push 6
mov ecx, esi
call fcn.10011920
push 4
mov ecx, esi
call fcn.10011920
int3