Function at 0x7877e8
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], eax
lea edi, [ebp - 4]
xor eax, eax
push ebp
push 0x7880c3
push dword fs:[eax]
mov dword fs:[eax], esp
mov esi, 1
xor eax, eax
mov dword [ebp - 8], eax
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
call fcn.00786ffc
xor edx, edx
mov eax, dword [edi]
call fcn.0078775c
mov ebx, eax
mov eax, dword [edi]
call fcn.00787750
test al, al
jne 0x787fe1
mov eax, dword [ebp - 8]
cmp eax, 8
ja case.default.0x787844
jmp dword [eax*4 + 0x78784b]
cmp bx, 0x61
jb 0x78787b
cmp bx, 0x7a
jbe 0x787887
cmp bx, 0x41
jb 0x7878a6
cmp bx, 0x5a
ja 0x7878a6
mov dword [ebp - 8], 1
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
cmp bx, 0x30
jb 0x7878b2
cmp bx, 0x39
jbe 0x7878ba
mov eax, dword [edi]
cmp bx, word [eax + 0x10]
jne 0x7878d9
mov dword [ebp - 8], 3
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
cmp bx, 0x20
jne 0x7878eb
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
cmp bx, 0x22
jne 0x78790e
mov dword [ebp - 8], 2
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
call fcn.00786ffc
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
cmp bx, 0x27
jne 0x787931
mov dword [ebp - 8], 6
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
call fcn.00786ffc
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
mov eax, dword [edi]
cmp bx, word [eax + 0x12]
jne 0x78794a
mov edx, 6
mov eax, dword [edi]
call fcn.0078814c
jmp case.default.0x787844
cmp bx, 0x28
jne 0x787961
mov edx, 4
mov eax, dword [edi]
call fcn.0078814c
jmp case.default.0x787844
cmp bx, 0x29
jne 0x787978
mov edx, 5
mov eax, dword [edi]
call fcn.0078814c
jmp case.default.0x787844
cmp bx, 0x2b
jne 0x78798f
mov edx, 7
mov eax, dword [edi]
call fcn.0078814c
jmp case.default.0x787844
cmp bx, 0x2d
jne 0x7879a6
mov edx, 8
mov eax, dword [edi]
call fcn.0078814c
jmp case.default.0x787844
cmp bx, 0x2f
jne 0x7879bd
mov edx, 0xa
mov eax, dword [edi]
call fcn.0078814c
jmp case.default.0x787844
cmp bx, 0x2a
jne 0x7879d4
mov edx, 9
mov eax, dword [edi]
call fcn.0078814c
jmp case.default.0x787844
cmp bx, 0x5e
jne 0x7879eb
mov edx, 0x13
mov eax, dword [edi]
call fcn.0078814c
jmp case.default.0x787844
cmp bx, 0x3d
jne 0x787a02
mov edx, 0xd
mov eax, dword [edi]
call fcn.0078814c
jmp case.default.0x787844
cmp bx, 0x26
jne 0x787a19
mov edx, 0xc
mov eax, dword [edi]
call fcn.0078814c
jmp case.default.0x787844
cmp bx, 0x25
jne 0x787a30
mov edx, 0x14
mov eax, dword [edi]
call fcn.0078814c
jmp case.default.0x787844
cmp bx, 0x24
jne 0x787a55
mov dword [ebp - 8], 4
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
cmp bx, 0x3e
jne 0x787aa2
mov edx, 1
mov eax, dword [edi]
call fcn.0078775c
cmp ax, 0x3d
jne 0x787a91
mov ecx, 0x7880d8
mov edx, 0x11
mov eax, dword [edi]
call fcn.007880f8
mov eax, dword [edi]
call fcn.0078774c
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
mov edx, 0xf
mov eax, dword [edi]
call fcn.0078814c
jmp case.default.0x787844
cmp bx, 0x3c
jne 0x787b19
mov edx, 1
mov eax, dword [edi]
call fcn.0078775c
cmp ax, 0x3d
jne 0x787ade
mov ecx, 0x7880e4
mov edx, 0x12
mov eax, dword [edi]
call fcn.007880f8
mov eax, dword [edi]
call fcn.0078774c
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
cmp ax, 0x3e
jne 0x787b08
mov ecx, 0x7880f0
mov edx, 0xe
mov eax, dword [edi]
call fcn.007880f8
mov eax, dword [edi]
call fcn.0078774c
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
mov edx, 0x10
mov eax, dword [edi]
call fcn.0078814c
jmp case.default.0x787844
mov dword [ebp - 8], 1
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
cmp bx, 0x61
jb 0x787b44
cmp bx, 0x7a
jbe 0x787b62
cmp bx, 0x41
jb 0x787b50
cmp bx, 0x5a
jbe 0x787b62
cmp bx, 0x30
jb 0x787b5c
cmp bx, 0x39
jbe 0x787b62
cmp bx, 0x5f
jne 0x787b7a
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
cmp bx, 0x24
je 0x787b86
cmp bx, 0x3a
jne 0x787ba5
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
mov dword [ebp - 8], 4
jmp case.default.0x787844
cmp bx, 0x21
jne 0x787bca
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
mov dword [ebp - 8], 5
jmp case.default.0x787844
cmp bx, 0x27
jne 0x787be3
mov eax, dword [edi]
call fcn.0078774c
mov dword [ebp - 8], 6
jmp case.default.0x787844
cmp bx, 0x20
jne 0x787bfa
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x22
jne 0x787c11
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x27
jne 0x787c28
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
mov eax, dword [edi]
cmp bx, word [eax + 0x12]
jne 0x787c41
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x2c
jne 0x787c58
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x3b
jne 0x787c6f
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x28
jne 0x787c86
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x29
jne 0x787c9d
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x2b
jne 0x787cb4
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x2d
jne 0x787ccb
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x2f
jne 0x787ce2
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x2a
jne 0x787cf9
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x5e
jne 0x787d10
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x3d
jne 0x787d27
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x26
jne 0x787d3e
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x25
jne 0x787d55
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x3e
jne 0x787d6c
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x3c
jne 0x787d83
push ebp
mov eax, 1
call fcn.00787778
pop ecx
jmp case.default.0x787844
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
cmp bx, 0x61
jb 0x787da7
cmp bx, 0x7a
jbe 0x787dd7
cmp bx, 0x41
jb 0x787db3
cmp bx, 0x5a
jbe 0x787dd7
cmp bx, 0x30
jb 0x787dbf
cmp bx, 0x39
jbe 0x787dd7
cmp bx, 0x5f
je 0x787dd7
cmp bx, 0x24
je 0x787dd7
cmp bx, 0x3a
je 0x787dd7
cmp bx, 0x21
jne 0x787def
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
cmp bx, 0x27
jne 0x787e08
mov eax, dword [edi]
call fcn.0078774c
mov dword [ebp - 8], 6
jmp case.default.0x787844
cmp dword [ebp - 8], 4
jne 0x787e1f
push ebp
mov eax, 0xb
call fcn.00787778
pop ecx
jmp case.default.0x787844
push ebp
mov eax, 0x15
call fcn.00787778
pop ecx
jmp case.default.0x787844
mov eax, dword [edi]
call fcn.0078774c
cmp bx, 0x27
jne 0x787e70
xor edx, edx
mov eax, dword [edi]
call fcn.0078775c
cmp ax, 0x27
jne 0x787e64
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
mov dword [ebp - 8], 5
jmp case.default.0x787844
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
jmp case.default.0x787844
mov eax, dword [edi]
call fcn.0078774c
cmp bx, 0x22
jne 0x787ec6
xor edx, edx
mov eax, dword [edi]
call fcn.0078775c
cmp ax, 0x22
jne 0x787eb5
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
push ebp
mov eax, 3
call fcn.00787778
pop ecx
jmp case.default.0x787844
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
jmp case.default.0x787844
cmp bx, 0x30
jb 0x787ee3
cmp bx, 0x39
jbe 0x787eeb
mov eax, dword [edi]
cmp bx, word [eax + 0x10]
jne 0x787f03
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
cmp bx, 0x65
je 0x787f0f
cmp bx, 0x45
jne 0x787f2e
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
mov dword [ebp - 8], 7
jmp case.default.0x787844
cmp bx, 0x3a
jne 0x787f53
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
mov dword [ebp - 8], 4
jmp case.default.0x787844
push ebp
mov eax, 2
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x30
jb 0x787f70
cmp bx, 0x39
jbe 0x787f7c
cmp bx, 0x2b
je 0x787f7c
cmp bx, 0x2d
jne 0x787f9b
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
mov dword [ebp - 8], 8
jmp case.default.0x787844
push ebp
mov eax, 2
call fcn.00787778
pop ecx
jmp case.default.0x787844
cmp bx, 0x30
jb 0x787fd0
cmp bx, 0x39
ja 0x787fd0
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
mov edx, ebx
call fcn.00786f4c
mov eax, dword [edi]
call fcn.0078774c
jmp case.default.0x787844
push ebp
mov eax, 2
call fcn.00787778
pop ecx
jmp case.default.0x787844
mov eax, dword [ebp - 8]
cmp eax, 8
ja case.0x787fed.0
jmp dword [eax*4 + 0x787ff4]
lea edx, [ebp - 0xc]
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
call fcn.00786edc
mov ecx, dword [ebp - 0xc]
mov edx, 1
mov eax, dword [edi]
call fcn.007880f8
jmp case.0x787fed.0
lea edx, [ebp - 0x10]
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
call fcn.00786edc
mov ecx, dword [ebp - 0x10]
mov edx, 0xb
mov eax, dword [edi]
call fcn.007880f8
jmp case.0x787fed.0
lea edx, [ebp - 0x14]
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
call fcn.00786edc
mov ecx, dword [ebp - 0x14]
mov edx, 0x15
mov eax, dword [edi]
call fcn.007880f8
jmp case.0x787fed.0
or esi, 0xffffffff
jmp case.0x787fed.0
or esi, 0xffffffff
jmp case.0x787fed.0
or esi, 0xffffffff
jmp case.0x787fed.0
lea edx, [ebp - 0x18]
mov eax, dword [edi]
mov eax, dword [eax + 0x18]
call fcn.00786edc
mov ecx, dword [ebp - 0x18]
mov edx, 2
mov eax, dword [edi]
call fcn.007880f8
jmp case.0x787fed.0
cmp esi, 1
je 0x78781e
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x7880ca
lea eax, [ebp - 0x18]
mov edx, 4
call fcn.00407674
ret