Function at 0x1001c824
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
mov eax, dword [esi + 0x5c]
mov ecx, dword [esi + 0x68]
xor ebx, ebx
dec eax
push edi
mov edi, dword [esi + 0x64]
mov dword [esi + 0x58], eax
call fcn.10017df7
and dword [esi + 0x6c], ebx
and dword [esi + 0x70], ebx
mov ecx, esi
call fcn.10016d1e
cmp edi, 0x3f
mov dword [esi + 0x64], eax
jg 0x1001c929
je 0x1001c91d
cmp edi, 0xffffffff
je 0x1001c910
cmp edi, 0x24
je 0x1001c908
cmp edi, 0x28
je 0x1001c8bf
cmp edi, 0x29
je 0x1001c8b8
cmp edi, 0x2a
je 0x1001c8b3
cmp edi, 0x2b
je 0x1001c89e
cmp edi, 0x2e
jne 0x1001c954
mov ecx, dword [esi + 0x68]
push 1
call fcn.10017e0d
jmp 0x1001cb2a
mov dword [esi + 0x6c], 1
mov dword [esi + 0x70], 0x401
push 9
jmp 0x1001cb2c
and dword [esi + 0x6c], ebx
jmp 0x1001c8a5
push 6
jmp 0x1001cb2c
cmp eax, 0x3f
jne 0x1001c901
call fcn.10016d1e
mov edi, eax
call fcn.10016d1e
mov dword [esi + 0x64], eax
cmp edi, 0x21
je 0x1001c8fa
cmp edi, 0x3a
je 0x1001c8ec
cmp edi, 0x3d
je 0x1001c8f3
push str.bad_lookahead_syntax
call fcn.10017582
push 3
jmp 0x1001cb2c
push 4
jmp 0x1001cb2c
push 5
jmp 0x1001cb2c
push 2
jmp 0x1001cb2c
xor eax, eax
inc eax
jmp 0x1001cb2d
mov eax, dword [esi + 0x5c]
mov dword [esi + 0x58], eax
xor eax, eax
jmp 0x1001cb2d
and dword [esi + 0x6c], ebx
mov dword [esi + 0x70], 1
jmp 0x1001c8ac
mov ecx, edi
sub ecx, 0x5b
je 0x1001c9fa
dec ecx
je 0x1001c9ee
dec ecx
je 0x1001c9d6
dec ecx
je 0x1001c9cf
sub ecx, 0x1d
je 0x1001c96e
dec ecx
je 0x1001c967
dec ecx
je 0x1001c960
mov eax, edi
or eax, 0x10000
jmp 0x1001cb2d
mov edi, 0x1007d
jmp 0x1001c9db
push 0xa
jmp 0x1001cb2c
push 0
mov ecx, esi
call fcn.10017922
cmp dword [esi + 0x64], 0x2c
mov dword [esi + 0x6c], eax
mov dword [esi + 0x70], eax
jne 0x1001c99a
mov ecx, esi
call fcn.10016d1e
push 0x401
mov dword [esi + 0x64], eax
call fcn.10017922
mov dword [esi + 0x70], eax
mov eax, dword [esi + 0x70]
cmp eax, dword [esi + 0x6c]
jge 0x1001c9ae
push str.invalid_interval
mov ecx, esi
call fcn.10017582
cmp dword [esi + 0x64], 0x7d
je 0x1001c9c0
push str.bad_repetition_syntax
mov ecx, esi
call fcn.10017582
mov ecx, esi
call fcn.10016d1e
mov dword [esi + 0x64], eax
jmp 0x1001c8ac
push 8
jmp 0x1001cb2c
mov edi, 0x1005d
push str.missing_left_delim
mov ecx, esi
call fcn.10017582
mov eax, edi
jmp 0x1001cb2d
mov ecx, esi
call fcn.1001bd21
jmp 0x1001cb2d
cmp eax, 0x5e
jne 0x1001ca13
mov ecx, dword [esi + 0x68]
push 1
call fcn.10017e0d
mov ecx, esi
call fcn.10016d1e
mov dword [esi + 0x64], eax
mov byte [ebp - 2], bl
mov byte [ebp - 1], bl
cmp dword [esi + 0x64], 0x2d
jne 0x1001ca3e
cmp byte [ebp - 2], 0
je 0x1001ca58
cmp byte [ebp - 1], 0
jne 0x1001ca3e
mov ecx, esi
mov byte [ebp - 1], 1
call fcn.10016d1e
mov dword [esi + 0x64], eax
jmp 0x1001cadb
cmp byte [ebp - 2], 0
je 0x1001ca58
cmp byte [ebp - 1], 0
jne 0x1001ca58
mov ecx, dword [esi + 0x68]
push ebx
push ebx
call fcn.100195df
mov byte [ebp - 2], 0
mov eax, dword [esi + 0x64]
mov ecx, esi
cmp eax, 0x5c
jne 0x1001ca7b
call fcn.10016d1e
mov dword [esi + 0x64], eax
call fcn.1001bd21
mov edi, eax
cmp edi, 0xb
jne 0x1001ca8a
push 8
pop edi
jmp 0x1001ca8a
or eax, 0x10000
mov edi, eax
call fcn.10016d1e
mov dword [esi + 0x64], eax
cmp edi, 7
jne 0x1001cab5
cmp byte [ebp - 1], 0
je 0x1001cadb
mov ecx, dword [esi + 0x68]
push 0x2d
push 0x2d
call fcn.100195df
push ebx
mov ecx, dword [esi + 0x68]
push ebx
call fcn.100195df
mov byte [ebp - 2], 0
mov byte [ebp - 1], 0
jmp 0x1001cadb
test edi, 0x10000
je 0x1001cacf
cmp byte [ebp - 1], 0
je 0x1001cac6
push edi
jmp 0x1001caa2
movzx ebx, di
mov byte [ebp - 2], 1
jmp 0x1001cadb
push str.bad_char_class_syntax
mov ecx, esi
call fcn.10017582
mov eax, dword [esi + 0x64]
cmp eax, 0x5d
je 0x1001caec
cmp eax, 0xffffffff
jne 0x1001ca19
cmp byte [ebp - 1], 0
je 0x1001cafe
mov ecx, dword [esi + 0x68]
push 0x2d
push 0x2d
call fcn.100195df
cmp byte [ebp - 2], 0
je 0x1001cb0e
mov ecx, dword [esi + 0x68]
push ebx
push ebx
call fcn.100195df
cmp dword [esi + 0x64], 0xffffffff
mov ecx, esi
jne 0x1001cb22
push str.unexpected_end
call fcn.10017582
jmp 0x1001cb2a
call fcn.10016d1e
mov dword [esi + 0x64], eax
push 7
pop eax
pop edi
pop esi
pop ebx
leave
ret