Function at 0x10020fab
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ecx
push ebx
push esi
mov esi, dword [ebp + 8]
lea eax, [ebp - 4]
push edi
push eax
mov ebx, ecx
mov dword [ebp - 4], esi
call fcn.10008e60
mov edi, dword [ebp + 0x10]
lea eax, [ebp - 8]
push eax
mov dword [ebp - 8], edi
call fcn.10008e60
cmp word [esi], 0x5e
pop ecx
pop ecx
mov byte [ebp + 0xb], 0
je 0x1002100d
mov eax, dword [ebp - 4]
cmp word [eax], 0x2d
jne 0x10021028
mov cx, word [eax + 2]
or cx, 0x20
cmp cx, 0x6d
jne 0x10021028
push 5
lea eax, [ebp - 4]
push eax
push str._mode
call fcn.10048195
add esp, 0xc
test al, al
je 0x10021025
push 0x26
push ebx
push dword [ebp - 4]
call fcn.1000731e
add esp, 0xc
neg al
sbb eax, eax
inc eax
jmp 0x10021206
mov eax, dword [ebp - 4]
mov cx, word [eax]
cmp cx, 0x3f
jne 0x10021047
push dword [ebp + 0xc]
add eax, 2
push dword [ebp + 0x14]
mov ecx, ebx
push eax
call fcn.100937d4
jmp 0x10021206
cmp cx, 0x24
je 0x10021095
cmp cx, 0x23
je 0x10021095
cmp cx, 0x26
jne 0x10021078
cmp word [eax + 2], cx
jne 0x10021078
cmp word [eax + 4], cx
jne 0x10021078
push 0
push ebx
push eax
call fcn.1000731e
add esp, 0xc
test al, al
jne 0x100210b0
mov eax, dword [ebp - 4]
mov ecx, dword [ebp - 8]
cmp word [ecx], 0x40
jne 0x1002109c
push dword [ebp + 0x14]
add ecx, 2
push edi
push ecx
mov ecx, ebx
call fcn.10096e71
jmp 0x10021206
mov cl, byte [eax]
mov byte [ebp + 0xb], cl
jmp 0x10021078
cmp word [eax], 0x2a
jne 0x100210b7
cmp word [eax + 2], 0
jne 0x100210b7
push ebx
call fcn.100121ec
pop ecx
xor eax, eax
jmp 0x10021206
mov di, word [esi]
and dword [ebp + 0x14], 0
xor cl, cl
cmp di, 0x2d
jne 0x10021123
mov dx, word [esi + 2]
cmp dx, 0x73
jne 0x100210e0
cmp word [esi + 4], 0x74
jne 0x10021123
cmp word [esi + 6], 0x64
je 0x10021158
jmp 0x10021123
cmp word [eax], 0x3b
jne 0x10021123
cmp word [eax + 2], 0x26
jne 0x10021123
push 0x20
pop ecx
or edx, ecx
cmp dx, 0x61
jne 0x10021123
mov dx, word [esi + 4]
or dx, cx
cmp dx, 0x64
jne 0x10021123
mov dx, word [esi + 6]
or dx, cx
cmp dx, 0x64
jne 0x10021123
mov dx, word [esi + 8]
or dx, cx
cmp dx, 0x72
je 0x100211c1
cmp byte [ebp + 0xb], 0
jne 0x100211df
cmp byte [ebx + 9], 0
jne 0x10021139
cmp di, 0x3f
jne 0x100211b5
cmp di, 0x2d
jne 0x100211af
cmp word [esi + 2], 0x65
jne 0x100211af
cmp word [esi + 4], 0x6e
jne 0x100211af
cmp word [esi + 6], 0x76
jne 0x100211af
xor ecx, ecx
mov cl, 0x40
or ecx, 1
push ecx
push 0
lea eax, [ebp + 0x14]
push eax
push dword [ebp + 0x10]
mov ecx, ebx
call fcn.10057b62
mov eax, dword [ebp + 0x14]
mov dword [ebp - 4], eax
lea eax, [ebp - 4]
push eax
call fcn.10008e60
cmp byte [ebp + 0xb], 0
mov eax, dword [ebp - 4]
pop ecx
jne 0x10021191
cmp byte [ebp + 0xc], 0
jne 0x100211c1
cmp word [eax], 0x26
je 0x100211c1
movsx ecx, byte [ebp + 0xb]
push dword [ebp + 0x10]
push ecx
push ecx
xor ecx, ecx
cmp byte [ebp + 0xb], cl
setne cl
lea eax, [eax + ecx*2]
push eax
mov ecx, ebx
call fcn.10020af3
jmp 0x100211d1
cmp word [eax], 0x5e
jne 0x100211c1
cmp byte [ebp + 0xc], 0
jne 0x100211c1
cmp word [eax], 0x26
jne 0x100211df
push dword [ebp + 0xc]
mov ecx, ebx
push dword [ebp + 0x10]
push 0
push eax
call fcn.1005f5c0
lea ecx, [ebp + 0x14]
mov esi, eax
call fcn.1003f96c
mov eax, esi
jmp 0x10021206
lea ecx, [ebp + 0x14]
call fcn.1003f96c
movsx eax, byte [ebp + 0xb]
push dword [ebp + 0x10]
mov ecx, dword [ebp - 4]
push eax
push eax
xor eax, eax
cmp byte [ebp + 0xb], al
setne al
lea eax, [ecx + eax*2]
push eax
mov ecx, ebx
call fcn.10020af3
pop edi
pop esi
pop ebx
leave
ret 0x10