Function at 0x47196c
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x2c
mov eax, dword [ebp + 8]
and dword [ebp - 0x14], 0
push ebx
push esi
mov ebx, dword [eax]
push edi
mov edi, edx
mov dword [ebp - 0x2c], ecx
mov ecx, edi
mov dword [ebp - 0xc], ebx
call fcn.00420b8c
mov esi, eax
test bl, 0x40
jne 0x4719a1
cmp dword [0x4bcf5c], 0
je 0x471d2f
cmp esi, 5
jl 0x471d2f
cmp dword [edi], 0x656c6966
jne 0x471d2f
cmp byte [edi + 4], 0x3a
jne 0x471d2f
and dword [ebp - 4], 0
lea eax, [esi + 2]
or ebx, 0x40
cdq
xor ecx, ecx
mov dword [ebp - 0xc], ebx
test esi, esi
jle 0x4719fe
cmp byte [ecx + edi], 0x26
jne 0x4719e3
xor ebx, ebx
inc ebx
and dword [ebp - 0x18], 0
jmp 0x4719f4
xorps xmm0, xmm0
movlpd qword [ebp - 0x28], xmm0
mov ebx, dword [ebp - 0x24]
mov dword [ebp - 0x18], ebx
mov ebx, dword [ebp - 0x28]
add eax, ebx
adc edx, dword [ebp - 0x18]
inc ecx
cmp ecx, esi
jl 0x4719d4
push edx
push eax
call fcn.0041e74e
mov ebx, eax
mov dword [ebp - 8], ebx
pop ecx
pop ecx
test ebx, ebx
jne 0x471a18
push 7
pop eax
jmp 0x471da6
cmp byte [edi + 5], 0x2f
push 5
pop esi
jne 0x471a7a
cmp byte [edi + 6], 0x2f
jne 0x471a7a
lea ecx, [edi + 7]
mov al, byte [ecx]
mov dword [ebp - 0x24], ecx
push 7
pop esi
test al, al
je 0x471a7a
cmp al, 0x2f
je 0x471a42
inc esi
mov al, byte [esi + edi]
test al, al
jne 0x471a36
cmp esi, 7
je 0x471a7a
cmp esi, 0x10
jne 0x471a63
push 9
push ecx
push 0x4b162c
call fcn.0047aec4
add esp, 0xc
test eax, eax
je 0x471a7a
mov ecx, dword [ebp - 0x24]
push ecx
lea eax, [esi - 7]
push eax
push 0x4b1638
call fcn.00420190
add esp, 0xc
jmp 0x471d81
mov bl, byte [esi + edi]
xor edx, edx
mov dword [ebp - 0x10], edx
test bl, bl
je 0x471bbf
cmp bl, 0x23
je 0x471bad
inc esi
cmp bl, 0x25
jne 0x471b27
mov cl, byte [esi + edi]
movzx eax, cl
test byte [eax + 0x4a75e0], 8
je 0x471b27
movzx eax, byte [esi + edi + 1]
test byte [eax + 0x4a75e0], 8
je 0x471b27
movsx edx, cl
movsx ecx, byte [esi + edi + 1]
call fcn.0042198e
mov ecx, edx
movzx ebx, al
call fcn.0042198e
mov edx, dword [ebp - 0x10]
add esi, 2
movzx eax, al
shl eax, 4
add ebx, eax
jne 0x471b95
jmp 0x471b1e
cmp al, 0x23
je 0x471ba2
test edx, edx
jne 0x471afb
cmp al, 0x3f
je 0x471ba2
cmp edx, 1
jne 0x471b10
cmp al, 0x3d
je 0x471ba2
cmp al, 0x26
je 0x471ba2
cmp edx, 2
jne 0x471b1d
cmp al, 0x26
je 0x471ba2
inc esi
mov al, byte [esi + edi]
test al, al
jne 0x471ae7
jmp 0x471ba2
cmp edx, 1
jne 0x471b7a
cmp bl, 0x26
je 0x471b36
cmp bl, 0x3d
jne 0x471b95
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
cmp byte [eax + ecx - 1], 0
je 0x471b67
cmp bl, 0x26
jne 0x471b70
mov ebx, eax
mov eax, ecx
mov byte [ebx + eax], 0
inc eax
mov dword [ebp - 4], eax
mov eax, ebx
mov ecx, dword [ebp - 4]
jmp 0x471b76
cmp al, 0x23
je 0x471ba2
cmp byte [esi + edi - 1], 0x26
je 0x471ba2
inc esi
mov al, byte [esi + edi]
test al, al
jne 0x471b5b
jmp 0x471ba2
push 2
pop edx
mov dword [ebp - 0x10], edx
xor bl, bl
jmp 0x471b9b
test edx, edx
jne 0x471b83
cmp bl, 0x3f
je 0x471b8d
cmp edx, 2
jne 0x471b95
cmp bl, 0x26
jne 0x471b95
xor edx, edx
xor bl, bl
inc edx
mov dword [ebp - 0x10], edx
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
mov byte [eax + ecx], bl
inc ecx
mov dword [ebp - 4], ecx
mov bl, byte [esi + edi]
test bl, bl
jne 0x471a8a
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 4]
cmp edx, 1
jne 0x471bc5
mov byte [ebx + eax], 0
inc eax
jmp 0x471bc5
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov ecx, ebx
mov word [ebx + eax], 0
call fcn.00420b8c
lea esi, [ebx + 1]
jmp 0x471d06
mov ecx, esi
call fcn.00420b8c
mov edi, eax
lea eax, [esi + 1]
add eax, edi
mov dword [ebp - 0x1c], edi
mov ecx, eax
mov dword [ebp - 8], eax
call fcn.00420b8c
mov dword [ebp - 0x24], eax
cmp edi, 3
jne 0x471c1a
mov eax, 0x6676
cmp ax, word [esi]
jne 0x471c1a
push 0x73
pop eax
cmp al, byte [esi + 2]
jne 0x471c1a
mov eax, dword [ebp - 8]
mov dword [ebp - 0x2c], eax
jmp 0x471d02
mov ecx, dword [ebp - 0x1c]
xor eax, eax
and dword [ebp - 0x10], eax
xor edi, edi
mov dword [ebp - 4], eax
cmp ecx, 5
jne 0x471c51
mov eax, 0x68636163
cmp eax, dword [esi]
jne 0x471c51
push 0x65
pop eax
cmp al, byte [esi + 4]
jne 0x471c51
mov eax, 0x4bca3c
mov dword [ebp - 0x10], 0x4b1654
mov edi, 0x60000
mov dword [ebp - 4], eax
mov dword [ebp - 0x18], edi
cmp ecx, 4
jne 0x471c8c
push ecx
push esi
push 0x4b166c
call fcn.0047aec4
add esp, 0xc
mov dword [ebp - 0x18], edi
test eax, eax
jne 0x471c8c
mov ecx, dword [ebp - 0xc]
mov eax, 0x87
and ecx, eax
mov dword [ebp - 0x10], 0x4b1680
mov edi, eax
mov dword [ebp - 0x18], ecx
mov esi, 0x4bca5c
jmp 0x471c8f
mov esi, dword [ebp - 4]
test esi, esi
je 0x471cff
mov eax, dword [esi]
xor ecx, ecx
mov dword [ebp - 4], ecx
jmp 0x471cc7
mov ecx, eax
call fcn.00420b8c
mov ecx, dword [ebp - 0x24]
cmp ecx, eax
jne 0x471cbd
push ecx
push dword [ebp - 0x1c]
push dword [ebp - 8]
call fcn.0047aec4
add esp, 0xc
test eax, eax
je 0x471cde
mov eax, dword [ebp - 4]
inc eax
mov dword [ebp - 4], eax
mov eax, dword [esi + eax*8]
mov dword [ebp - 0x1c], eax
test eax, eax
jne 0x471c9c
push dword [ebp - 8]
push dword [ebp - 0x10]
push str.unsupported_file_format
jmp 0x471a6d
mov ecx, dword [ebp - 4]
mov ecx, dword [esi + ecx*8 + 4]
test ecx, ecx
je 0x471cce
mov eax, ecx
and eax, 0xffffff7f
cmp eax, dword [ebp - 0x18]
jg 0x471d13
not edi
and edi, dword [ebp - 0xc]
or edi, ecx
mov dword [ebp - 0xc], edi
mov eax, dword [ebp - 8]
mov esi, dword [ebp - 0x24]
inc esi
add esi, eax
cmp byte [esi], 0
jne 0x471bda
jmp 0x471d5f
push dword [ebp - 8]
push dword [ebp - 0x10]
push 0x4b169c
call fcn.00420190
add esp, 0xc
mov dword [ebp - 0x14], 3
jmp 0x471d88
lea eax, [esi + 2]
cdq
push edx
push eax
call fcn.0041e74e
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
je 0x471a10
test esi, esi
je 0x471d55
push esi
push edi
push ebx
call fcn.00479bf0
add esp, 0xc
and dword [ebp - 0xc], 0xffffffbf
mov word [ebx + esi], 0
mov esi, dword [ebp - 0x2c]
push esi
call fcn.0041e055
pop ecx
mov ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [eax], ecx
test ecx, ecx
jne 0x471d96
push esi
push 0x4b16b4
call fcn.00420190
pop ecx
pop ecx
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
push ebx
call fcn.0041e7c6
pop ecx
xor ebx, ebx
mov ecx, dword [ebp + 8]
mov eax, dword [ebp - 0xc]
mov dword [ecx], eax
mov ecx, dword [ebp + 0x10]
mov eax, dword [ebp - 0x14]
mov dword [ecx], ebx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret