Function at 0x8a4951
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.00855f48
mov esi, eax
test bl, 0x40
jne 0x8a4986
cmp dword [0x4aef5c], 0
je 0x8a4d14
cmp esi, 5
jl 0x8a4d14
cmp dword [edi], 0x656c6966
jne 0x8a4d14
cmp byte [edi + 4], 0x3a
jne 0x8a4d14
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 0x8a49e3
cmp byte [ecx + edi], 0x26
jne 0x8a49c8
xor ebx, ebx
inc ebx
and dword [ebp - 0x18], 0
jmp 0x8a49d9
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 0x8a49b9
push edx
push eax
call fcn.00853bf6
mov ebx, eax
mov dword [ebp - 8], ebx
pop ecx
pop ecx
test ebx, ebx
jne 0x8a49fd
push 7
pop eax
jmp 0x8a4d8b
cmp byte [edi + 5], 0x2f
push 5
pop esi
jne 0x8a4a5f
cmp byte [edi + 6], 0x2f
jne 0x8a4a5f
lea ecx, [edi + 7]
mov al, byte [ecx]
mov dword [ebp - 0x24], ecx
push 7
pop esi
test al, al
je 0x8a4a5f
cmp al, 0x2f
je 0x8a4a27
inc esi
mov al, byte [esi + edi]
test al, al
jne 0x8a4a1b
cmp esi, 7
je 0x8a4a5f
cmp esi, 0x10
jne 0x8a4a48
push 9
push ecx
push 0x4a755c
call fcn.008ad304
add esp, 0xc
test eax, eax
je 0x8a4a5f
mov ecx, dword [ebp - 0x24]
push ecx
lea eax, [esi - 7]
push eax
push 0x4a7568
call fcn.008555be
add esp, 0xc
jmp 0x8a4d66
mov bl, byte [esi + edi]
xor edx, edx
mov dword [ebp - 0x10], edx
test bl, bl
je 0x8a4ba4
cmp bl, 0x23
je 0x8a4b92
inc esi
cmp bl, 0x25
jne 0x8a4b0c
mov cl, byte [esi + edi]
movzx eax, cl
test byte [eax + 0x49d5b0], 8
je 0x8a4b0c
movzx eax, byte [esi + edi + 1]
test byte [eax + 0x49d5b0], 8
je 0x8a4b0c
movsx edx, cl
movsx ecx, byte [esi + edi + 1]
call fcn.00856d4a
mov ecx, edx
movzx ebx, al
call fcn.00856d4a
mov edx, dword [ebp - 0x10]
add esi, 2
movzx eax, al
shl eax, 4
add ebx, eax
jne 0x8a4b7a
jmp 0x8a4b03
cmp al, 0x23
je 0x8a4b87
test edx, edx
jne 0x8a4ae0
cmp al, 0x3f
je 0x8a4b87
cmp edx, 1
jne 0x8a4af5
cmp al, 0x3d
je 0x8a4b87
cmp al, 0x26
je 0x8a4b87
cmp edx, 2
jne 0x8a4b02
cmp al, 0x26
je 0x8a4b87
inc esi
mov al, byte [esi + edi]
test al, al
jne 0x8a4acc
jmp 0x8a4b87
cmp edx, 1
jne 0x8a4b5f
cmp bl, 0x26
je 0x8a4b1b
cmp bl, 0x3d
jne 0x8a4b7a
mov eax, dword [ebp - 8]
mov ecx, dword [ebp - 4]
cmp byte [eax + ecx - 1], 0
je 0x8a4b4c
cmp bl, 0x26
jne 0x8a4b55
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 0x8a4b5b
cmp al, 0x23
je 0x8a4b87
cmp byte [esi + edi - 1], 0x26
je 0x8a4b87
inc esi
mov al, byte [esi + edi]
test al, al
jne 0x8a4b40
jmp 0x8a4b87
push 2
pop edx
mov dword [ebp - 0x10], edx
xor bl, bl
jmp 0x8a4b80
test edx, edx
jne 0x8a4b68
cmp bl, 0x3f
je 0x8a4b72
cmp edx, 2
jne 0x8a4b7a
cmp bl, 0x26
jne 0x8a4b7a
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 0x8a4a6f
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 4]
cmp edx, 1
jne 0x8a4baa
mov byte [ebx + eax], 0
inc eax
jmp 0x8a4baa
mov ebx, dword [ebp - 8]
mov eax, dword [ebp - 4]
mov ecx, ebx
mov word [ebx + eax], 0
call fcn.00855f48
lea esi, [ebx + 1]
jmp 0x8a4ceb
mov ecx, esi
call fcn.00855f48
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.00855f48
mov dword [ebp - 0x24], eax
cmp edi, 3
jne 0x8a4bff
mov eax, 0x6676
cmp ax, word [esi]
jne 0x8a4bff
push 0x73
pop eax
cmp al, byte [esi + 2]
jne 0x8a4bff
mov eax, dword [ebp - 8]
mov dword [ebp - 0x2c], eax
jmp 0x8a4ce7
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 0x8a4c36
mov eax, 0x68636163
cmp eax, dword [esi]
jne 0x8a4c36
push 0x65
pop eax
cmp al, byte [esi + 4]
jne 0x8a4c36
mov eax, 0x4aea3c
mov dword [ebp - 0x10], 0x4a7584
mov edi, 0x60000
mov dword [ebp - 4], eax
mov dword [ebp - 0x18], edi
cmp ecx, 4
jne 0x8a4c71
push ecx
push esi
push 0x4a759c
call fcn.008ad304
add esp, 0xc
mov dword [ebp - 0x18], edi
test eax, eax
jne 0x8a4c71
mov ecx, dword [ebp - 0xc]
mov eax, 0x87
and ecx, eax
mov dword [ebp - 0x10], 0x4a75b0
mov edi, eax
mov dword [ebp - 0x18], ecx
mov esi, 0x4aea5c
jmp 0x8a4c74
mov esi, dword [ebp - 4]
test esi, esi
je 0x8a4ce4
mov eax, dword [esi]
xor ecx, ecx
mov dword [ebp - 4], ecx
jmp 0x8a4cac
mov ecx, eax
call fcn.00855f48
mov ecx, dword [ebp - 0x24]
cmp ecx, eax
jne 0x8a4ca2
push ecx
push dword [ebp - 0x1c]
push dword [ebp - 8]
call fcn.008ad304
add esp, 0xc
test eax, eax
je 0x8a4cc3
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 0x8a4c81
push dword [ebp - 8]
push dword [ebp - 0x10]
push 0x4a75b8
jmp 0x8a4a52
mov ecx, dword [ebp - 4]
mov ecx, dword [esi + ecx*8 + 4]
test ecx, ecx
je 0x8a4cb3
mov eax, ecx
and eax, 0xffffff7f
cmp eax, dword [ebp - 0x18]
jg 0x8a4cf8
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 0x8a4bbf
jmp 0x8a4d44
push dword [ebp - 8]
push dword [ebp - 0x10]
push 0x4a75cc
call fcn.008555be
add esp, 0xc
mov dword [ebp - 0x14], 3
jmp 0x8a4d6d
lea eax, [esi + 2]
cdq
push edx
push eax
call fcn.00853bf6
mov ebx, eax
pop ecx
pop ecx
test ebx, ebx
je 0x8a49f5
test esi, esi
je 0x8a4d3a
push esi
push edi
push ebx
call fcn.008ac030
add esp, 0xc
and dword [ebp - 0xc], 0xffffffbf
mov word [ebx + esi], 0
mov esi, dword [ebp - 0x2c]
push esi
call fcn.008534fd
pop ecx
mov ecx, eax
mov eax, dword [ebp + 0xc]
mov dword [eax], ecx
test ecx, ecx
jne 0x8a4d7b
push esi
push 0x4a75e4
call fcn.008555be
pop ecx
pop ecx
mov dword [ebp - 0x14], 1
mov ecx, dword [ebp + 0x14]
mov dword [ecx], eax
push ebx
call fcn.00853c6e
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