Function at 0x51abfc
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff90
push ebx
push esi
push edi
mov esi, dword [ebp + 0xc]
mov ebx, dword [ebp + 8]
lea edi, [ebp - 0x30]
lea eax, [ebp - 0x20]
push eax
call fcn.00519ca0
pop ecx
jmp 0x51aedb
cmp dword [ebx + 0xac], 0
jne 0x51ad66
mov byte [ebp - 0x40], 0x7b
mov dword [ebp - 0x3c], 1
xor edx, edx
mov dword [ebp - 0x38], edx
xor ecx, ecx
mov dword [ebp - 0x34], ecx
lea eax, [ebx + 0xb8]
mov dl, byte [eax]
cmp dl, byte [ebp - 0x40]
jne 0x51ac54
mov ecx, dword [eax + 4]
cmp ecx, dword [ebp - 0x3c]
je 0x51ac58
xor eax, eax
jmp 0x51ac5d
mov eax, 1
test eax, eax
jne 0x51ad0a
mov byte [ebp - 0x50], 0x3f
mov dword [ebp - 0x4c], 1
xor edx, edx
mov dword [ebp - 0x48], edx
xor ecx, ecx
mov dword [ebp - 0x44], ecx
lea eax, [ebx + 0xb8]
mov dl, byte [eax]
cmp dl, byte [ebp - 0x50]
jne 0x51ac8f
mov ecx, dword [eax + 4]
cmp ecx, dword [ebp - 0x4c]
je 0x51ac93
xor eax, eax
jmp 0x51ac98
mov eax, 1
test eax, eax
jne 0x51ad0a
mov byte [ebp - 0x60], 0x2a
mov dword [ebp - 0x5c], 1
xor edx, edx
mov dword [ebp - 0x58], edx
xor ecx, ecx
mov dword [ebp - 0x54], ecx
lea eax, [ebx + 0xb8]
mov dl, byte [eax]
cmp dl, byte [ebp - 0x60]
jne 0x51acc6
mov ecx, dword [eax + 4]
cmp ecx, dword [ebp - 0x5c]
je 0x51acca
xor eax, eax
jmp 0x51accf
mov eax, 1
test eax, eax
jne 0x51ad0a
mov byte [ebp - 0x70], 0x2b
mov dword [ebp - 0x6c], 1
xor edx, edx
mov dword [ebp - 0x68], edx
xor ecx, ecx
mov dword [ebp - 0x64], ecx
lea eax, [ebx + 0xb8]
mov dl, byte [eax]
cmp dl, byte [ebp - 0x70]
jne 0x51acfd
mov ecx, dword [eax + 4]
cmp ecx, dword [ebp - 0x6c]
je 0x51ad01
xor eax, eax
jmp 0x51ad06
mov eax, 1
test eax, eax
je 0x51ad3d
cmp dword [ebp - 0x18], 0
jne 0x51af14
mov dl, byte [ebx + 0xa8]
mov byte [ebp - 1], dl
push 1
push 1
lea ecx, [ebp - 1]
push ecx
lea eax, [ebp - 0x20]
push eax
call fcn.0052215c
add esp, 0x10
push ebx
call fcn.0051692c
pop ecx
jmp 0x51af14
mov dl, byte [ebx + 0xa8]
mov byte [ebp - 2], dl
push 1
push 1
lea ecx, [ebp - 2]
push ecx
lea eax, [ebp - 0x20]
push eax
call fcn.0052215c
add esp, 0x10
push ebx
call fcn.0051692c
pop ecx
jmp 0x51aedb
cmp dword [ebx + 0xac], 1
jne 0x51aedb
mov al, byte [ebx + 0xa8]
movsx edx, al
cmp edx, 0x29
je 0x51af14
movsx ecx, al
cmp ecx, 0x7c
je 0x51af14
cmp dword [ebp - 0x18], 0
jg 0x51af14
movsx edx, al
cmp edx, 0x28
jne 0x51adc2
push esi
push ebx
call fcn.0051b120
add esp, 8
push eax
push 2
lea eax, [ebp - 0x20]
push eax
call fcn.00521dd4
add esp, 8
pop eax
jmp 0x51af95
movsx edx, al
cmp edx, 0x5b
je 0x51ae02
movsx ecx, al
cmp ecx, 0x2e
je 0x51ae02
movsx edx, al
cmp edx, 0x77
je 0x51ae02
movsx ecx, al
cmp ecx, 0x57
je 0x51ae02
movsx edx, al
cmp edx, 0x73
je 0x51ae02
movsx ecx, al
cmp ecx, 0x53
je 0x51ae02
movsx edx, al
cmp edx, 0x64
je 0x51ae02
movsx ecx, al
cmp ecx, 0x44
jne 0x51ae21
push esi
push ebx
call fcn.0051e7a8
add esp, 8
push eax
push 2
lea eax, [ebp - 0x20]
push eax
call fcn.00521dd4
add esp, 8
pop eax
jmp 0x51af95
movsx edx, al
cmp edx, 0x5e
je 0x51ae61
movsx ecx, al
cmp ecx, 0x24
je 0x51ae61
movsx edx, al
cmp edx, 0x41
je 0x51ae61
movsx ecx, al
cmp ecx, 0x5a
je 0x51ae61
movsx edx, al
cmp edx, 0x7a
je 0x51ae61
movsx ecx, al
cmp ecx, 0x62
je 0x51ae61
movsx edx, al
cmp edx, 0x42
je 0x51ae61
movsx ecx, al
cmp ecx, 0x47
jne 0x51ae80
push esi
push ebx
call fcn.0051f5fc
add esp, 8
push eax
push 2
lea eax, [ebp - 0x20]
push eax
call fcn.00521dd4
add esp, 8
pop eax
jmp 0x51af95
movsx edx, al
cmp edx, 0x5c
je 0x51ae98
movsx ecx, al
cmp ecx, 0x6b
je 0x51ae98
movsx eax, al
cmp eax, 0x67
jne 0x51aeb7
push esi
push ebx
call fcn.0051fab8
add esp, 8
push eax
push 2
lea edx, [ebp - 0x20]
push edx
call fcn.00521dd4
add esp, 8
pop eax
jmp 0x51af95
mov dl, byte [ebx + 0xa8]
mov byte [ebp - 3], dl
push 1
push 1
lea ecx, [ebp - 3]
push ecx
lea eax, [ebp - 0x20]
push eax
call fcn.0052215c
add esp, 0x10
push ebx
call fcn.0051692c
pop ecx
mov byte [edi], 0
mov dword [edi + 4], 1
xor edx, edx
mov dword [edi + 8], edx
xor ecx, ecx
mov dword [edi + 0xc], ecx
lea eax, [ebx + 0xa8]
mov dl, byte [eax]
cmp dl, byte [edi]
jne 0x51af03
mov ecx, dword [eax + 4]
cmp ecx, dword [edi + 4]
je 0x51af07
xor eax, eax
jmp 0x51af0c
mov eax, 1
test eax, eax
je 0x51ac1d
cmp dword [ebp - 0x18], 0
jle 0x51af7a
push 0x20
call fcn.00512358
pop ecx
mov dword [ebp - 0xc], eax
test eax, eax
je 0x51af50
mov edx, dword [esi]
and edx, 8
push edx
mov ecx, dword [esi]
and ecx, 0x10
push ecx
push dword [ebp - 0x18]
lea eax, [ebp - 0x20]
push eax
call fcn.00522318
pop ecx
push eax
push dword [ebp - 0xc]
call fcn.0052024c
add esp, 0x14
jmp 0x51af53
mov eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
push dword [ebp - 8]
add ebx, 0x14
push ebx
call fcn.00513384
add esp, 8
mov eax, dword [ebp - 8]
push eax
push 2
lea edx, [ebp - 0x20]
push edx
call fcn.00521dd4
add esp, 8
pop eax
jmp 0x51af95
push 0
push ebx
call fcn.00518f40
add esp, 8
push eax
push 2
lea edx, [ebp - 0x20]
push edx
call fcn.00521dd4
add esp, 8
pop eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret