Function at 0x10088eb3
Capabilities:
Parse credit card information

Disassembly:
push ebp
lea ebp, [esp - 0x1f70]
mov eax, 0x1f70
call fcn.100bb6d0
push 0xffffffffffffffff
push 0x100f3321
mov eax, dword fs:[0]
push eax
sub esp, 0x64
mov eax, dword [0x10125074]
xor eax, ebp
mov dword [ebp + 0x1f6c], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, dword [ebp + 0x1f88]
xor ebx, ebx
push ebx
push ecx
push str.__.:___
xor edi, edi
mov dword [ebp - 0x18], ebx
push ebx
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x1c], edi
call fcn.100445d6
and dword [ebp - 4], ebx
lea ecx, [ebp]
push esi
call fcn.1003e685
push 0xffffffffffffffff
lea eax, [ebp]
push eax
push dword [ebp + 0x1f84]
lea ecx, [ebp - 0x64]
push dword [ebp + 0x1f80]
push dword [ebp + 0x1f7c]
call fcn.100409f5
xor eax, eax
inc eax
mov byte [ebp - 0x14], al
xor al, al
mov byte [ebp - 0xd], al
jmp 0x100892b0
cmp byte [ebp - 0x38], 0
je 0x10088f67
mov eax, dword [ebp - 0x48]
lea ecx, [ebp]
add eax, 0xfffffffd
push eax
call fcn.1003e736
cmp al, 0x5c
sete byte [ebp - 0x14]
mov eax, dword [ebp - 0x34]
dec eax
cmp eax, 0xb
ja case.default.0x10088f74
jmp dword [eax*4 + 0x100892f3]
cmp byte [ebp - 0x37], 0
je case.default.0x10088f74
push 0
lea ecx, [ebp - 0x64]
call fcn.10040ba9
jmp case.default.0x10088f74
cmp dword [ebp - 0x2c], 0x22
jne 0x10088fa6
push 0
lea ecx, [ebp - 0x64]
call fcn.10040bd0
jmp 0x10088feb
cmp dword [ebp - 0x2c], 0x5c
jne 0x10088fc6
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x64]
push 8
mov dword [ebp - 0x18], eax
call fcn.10040ba9
lea ecx, [ebp - 0x64]
call fcn.10040b19
jmp 0x10088feb
cmp dword [ebp - 0x2c], 0x7b
jne 0x10088feb
mov edx, dword [ebp - 0x48]
lea ecx, [ebp]
call fcn.10088db5
test al, al
je 0x10088feb
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x64]
push 0xa
mov dword [ebp - 0x1c], eax
call fcn.10040ba9
cmp dword [ebp - 0x34], 3
jne case.default.0x10088f74
cmp dword [ebp - 0x2c], 0x25
jne 0x100892a2
push dword [ebp - 0x24]
call fcn.100dddbd
pop ecx
test eax, eax
jne 0x10089016
cmp dword [ebp - 0x24], 0x2a
jne case.default.0x10088f74
push 0xb
jmp 0x10088f87
push 3
lea ecx, [ebp - 0x64]
call fcn.10040bd0
cmp dword [ebp - 0x2c], 0x22
jne case.default.0x10088f74
push 0
lea ecx, [ebp - 0x64]
call fcn.10040bd0
jmp case.default.0x10088f74
cmp dword [ebp - 0x2c], 0x3a
jne case.default.0x10088f74
push 0
lea ecx, [ebp - 0x64]
call fcn.10040ba9
xor al, al
mov byte [ebp - 0xd], al
jmp 0x1008914f
cmp dword [ebp - 0x2c], 0x5d
mov esi, dword [ebp - 0x48]
jne 0x10089075
mov edx, esi
lea ecx, [ebp]
call fcn.10088d69
test al, al
jne 0x10089031
cmp dword [ebp - 0x2c], 0x7b
jne case.default.0x10088f74
mov edx, esi
lea ecx, [ebp]
call fcn.10088db5
test al, al
je case.default.0x10088f74
mov eax, dword [ebp - 0x34]
mov dword [ebp - 0x1c], eax
push 9
jmp 0x10088f87
cmp dword [ebp - 0x2c], 0x22
lea ecx, [ebp - 0x64]
jne 0x100890af
push ebx
call fcn.10040ba9
jmp 0x10089031
cmp dword [ebp - 0x2c], 0x5c
je 0x10089147
push ebx
call fcn.10040ba9
xor eax, eax
mov dword [ebp - 0x18], eax
jmp case.default.0x10088f74
cmp dword [ebp - 0x2c], 0x7d
jne 0x100890dd
push edi
lea ecx, [ebp - 0x64]
call fcn.10040bd0
xor eax, eax
mov dword [ebp - 0x1c], eax
cmp dword [ebp - 0x2c], 0x22
jne 0x100890f7
mov eax, dword [ebp - 0x34]
cmp eax, 2
je 0x10089031
cmp eax, 3
jmp 0x1008902b
cmp dword [ebp - 0x2c], 0x5d
jne 0x10089121
mov edx, dword [ebp - 0x48]
lea ecx, [ebp]
call fcn.10088d69
test al, al
je 0x10089121
mov eax, dword [ebp - 0x34]
cmp eax, 6
je 0x10089031
cmp eax, 7
je 0x10089031
cmp dword [ebp - 0x2c], 0x5c
jne case.default.0x10088f74
mov eax, dword [ebp - 0x34]
cmp eax, 2
je 0x10089134
cmp eax, 3
jne case.default.0x10088f74
mov eax, dword [ebp - 0x34]
lea ecx, [ebp - 0x64]
push 8
mov dword [ebp - 0x18], eax
call fcn.10040ba9
lea ecx, [ebp - 0x64]
call fcn.10040b19
mov al, byte [ebp - 0xd]
cmp dword [ebp - 0x34], 0
jne 0x100892a2
cmp dword [ebp - 0x2c], 0x3b
mov edi, dword [ebp - 0x48]
jne 0x1008916b
xor eax, eax
inc eax
push eax
jmp 0x10089268
cmp dword [ebp - 0x2c], 0x22
jne 0x100891e2
xor bh, bh
push 0
inc edi
lea ecx, [ebp]
push edi
call fcn.1003fcae
push 0
lea ecx, [edi + 1]
mov bl, al
push ecx
lea ecx, [ebp]
call fcn.1003fcae
cmp bl, 0xd
jne 0x10089198
cmp al, 0xa
jne 0x100891a1
cmp bl, 0xa
je 0x100891a1
xor al, al
jmp 0x100891a4
xor eax, eax
inc eax
test bh, bh
je 0x100891ac
xor bh, bh
jmp 0x100891bb
cmp bl, 0x5c
sete bh
cmp bl, 0x22
je 0x100891c3
test bl, bl
je 0x100891db
test al, al
je 0x10089173
xor al, al
jmp 0x100891d0
push 0x3d
mov edx, edi
lea ecx, [ebp]
call fcn.10088d04
pop ecx
test al, al
je 0x100891db
push 2
jmp 0x10089268
push 3
jmp 0x10089268
cmp dword [ebp - 0x2c], 0x5b
jne 0x10089205
mov edx, dword [ebp - 0x48]
lea ecx, [ebp]
push 0x2d
call fcn.10088d04
pop ecx
lea ecx, [ebp - 0x64]
test al, al
je 0x10089201
push 7
jmp 0x1008926b
push 6
jmp 0x1008926b
cmp dword [ebp - 0x2c], 0x3d
jne 0x10089213
xor eax, eax
inc eax
mov byte [ebp - 0xd], al
jmp 0x10089273
push dword [ebp - 0x2c]
test al, al
je 0x10089255
call fcn.100ddd58
pop ecx
test eax, eax
je 0x10089270
push dword [ebp - 0x30]
call fcn.100ddd58
pop ecx
test eax, eax
jne 0x10089270
xor esi, esi
inc esi
lea ecx, [ebp]
push 0
lea eax, [esi + edi]
push eax
call fcn.1003fcae
cmp al, 0x3a
je 0x10089251
test al, al
je 0x10089270
cmp esi, 0xa
jl 0x10089233
jmp 0x10089270
push 5
jmp 0x10089268
call fcn.100ddee6
test eax, eax
mov eax, dword [ebp - 0x14]
pop ecx
je 0x10089273
test al, al
je 0x10089273
push 4
lea ecx, [ebp - 0x64]
call fcn.10040ba9
mov eax, dword [ebp - 0x14]
cmp dword [ebp - 0x2c], 0x40
push 1
pop ecx
push dword [ebp - 0x2c]
movzx eax, al
cmove eax, ecx
lea ecx, [ebp - 0x70]
mov dword [ebp - 0x14], eax
call fcn.10044691
test al, al
je 0x100892a2
cmp byte [ebp - 0x14], 0
je 0x100892a2
push 0xc
lea ecx, [ebp - 0x64]
call fcn.10040ba9
lea ecx, [ebp - 0x64]
call fcn.10040b19
mov ebx, dword [ebp - 0x18]
mov edi, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x48]
cmp eax, dword [ebp - 0x5c]
jb 0x10088f4c
lea ecx, [ebp - 0x64]
call fcn.10040aeb
push dword [ebp - 0x68]
call fcn.100baac0
pop ecx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp + 0x1f6c]
xor ecx, ebp
call fcn.100ba4f0
add ebp, 0x1f70
leave
ret 0x14