Function at 0x796e34
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffbe0
mov dword [esp + 4], ecx
mov esi, edx
mov dword [esp], eax
xor eax, eax
mov dword [esp + 8], eax
xor ebp, ebp
mov eax, esi
call fcn.0040b644
xor edx, edx
mov dword [esp + 0x18], edx
dec eax
test eax, eax
jl 0x796e8d
inc eax
mov dword [esp + 0x1c], eax
xor edi, edi
mov bl, byte [esi + edi]
cmp bl, 0x20
je 0x796e86
cmp bl, 0xd
je 0x796e86
cmp bl, 0xa
je 0x796e86
mov eax, ebx
call fcn.00796dd0
mov byte [esp + ebp + 0x20], al
inc ebp
inc edi
dec dword [esp + 0x1c]
jne 0x796e68
mov byte [esp + ebp + 0x20], 0
xor edi, edi
xor ebp, ebp
xor ebx, ebx
mov eax, dword [esp]
mov word [eax], 0
jmp 0x797089
mov eax, ebx
cmp eax, 5
ja case.default.0x796eb0
jmp dword [eax*4 + 0x796eb7]
mov al, byte [esp + edi + 0x20]
cmp al, 0x41
jb 0x796ef0
cmp al, 0x48
ja 0x796ef0
and eax, 0xff
sub ax, 0x41
mov edx, dword [esp]
shl eax, 0xd
mov word [edx + ebp*2], ax
jmp 0x796ef8
mov dword [esp + 0x18], 0x14
inc ebx
jmp case.default.0x796eb0
cmp dl, 0x3d
je 0x796f0b
mov dword [esp + 0x18], 0x14
inc ebx
jmp case.default.0x796eb0
mov al, byte [esp + edi + 0x20]
cmp al, 0x41
jb 0x796f32
cmp al, 0x48
ja 0x796f32
and eax, 0xff
sub ax, 0x41
mov edx, dword [esp]
shl eax, 0xa
or word [edx + ebp*2], ax
jmp 0x796f3a
mov dword [esp + 0x18], 0x14
inc ebx
jmp case.default.0x796eb0
mov eax, 0xffff
cmp dl, 0x2b
jne 0x796f4c
xor eax, eax
cmp dl, 0x2d
jne 0x796f56
mov eax, 1
cmp dl, 0x3c
jne 0x796f60
mov eax, 2
cmp dl, 0x2a
jne 0x796f6a
mov eax, 3
cmp dl, 0x5e
jne 0x796f74
mov eax, 4
cmp dl, 0x26
jne 0x796f7e
mov eax, 5
cmp dl, 0x7c
jne 0x796f88
mov eax, 6
cmp dl, 0x3f
jne 0x796f92
mov eax, 7
cmp eax, 0xffff
jne 0x796fa1
mov dword [esp + 0x18], 0x15
mov edx, dword [esp]
shl eax, 7
or word [edx + ebp*2], ax
inc ebx
jmp case.default.0x796eb0
mov eax, 0xffff
mov dl, byte [esp + edi + 0x20]
cmp dl, 0x30
jb 0x797029
cmp dl, 0x39
ja 0x797029
test ebp, ebp
jne 0x796fd0
mov dword [esp + 0x18], 0x16
mov eax, dword [esp]
or word [eax + ebp*2], 0x40
lea eax, [esp + 0xc]
xor ecx, ecx
mov edx, 0xa
call fcn.00402e68
xor edx, edx
jmp 0x796ff2
mov byte [esp + edx + 0xc], al
inc edx
inc edi
mov al, byte [esp + edi + 0x20]
cmp al, 0x30
jb 0x796ffe
cmp al, 0x39
jbe 0x796fec
dec edi
mov byte [esp + edx + 0xc], 0
lea eax, [esp + 0xc]
call fcn.00796ddc
cmp eax, 0x40
jb 0x79701a
mov dword [esp + 0x18], 0x18
mov edx, dword [esp]
or word [edx + ebp*2], ax
mov dword [esp + 8], 1
mov dl, byte [esp + edi + 0x20]
cmp dl, 0x41
jb 0x79705d
cmp dl, 0x48
ja 0x79705d
xor eax, eax
mov al, dl
sub ax, 0x41
mov edx, dword [esp]
shl eax, 3
or word [edx + ebp*2], ax
test ebp, ebp
jne 0x797055
mov eax, dword [esp]
or word [eax + ebp*2], 1
xor eax, eax
mov dword [esp + 8], eax
jmp 0x79706c
cmp eax, 0xffff
jne 0x79706c
mov dword [esp + 0x18], 0x14
inc ebx
jmp case.default.0x796eb0
cmp dl, 0x2c
je 0x79707c
mov dword [esp + 0x18], 0x14
xor ebx, ebx
inc ebp
mov eax, dword [esp]
mov word [eax + ebp*2], 0
inc edi
mov dl, byte [esp + edi + 0x20]
test dl, dl
je 0x79709c
cmp dword [esp + 0x18], 0
je 0x796ea5
cmp ebx, 5
je 0x7970a9
mov dword [esp + 0x18], 0x14
cmp dword [esp + 8], 0
je 0x7970b8
mov dword [esp + 0x18], 0x17
mov eax, dword [esp]
or word [eax + ebp*2], 4
lea eax, [ebp + 1]
mov edx, dword [esp + 4]
mov dword [edx], eax
cmp eax, 0x80
jbe 0x7970d8
mov dword [esp + 0x18], 7
mov eax, dword [esp + 0x18]
add esp, 0x420
pop ebp
pop edi
pop esi
pop ebx
ret