Function at 0x4b66d0
Capabilities:
Parse credit card information

Disassembly:
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x4b6ba6
push edi
lea edi, [esi + 8]
push ebx
cmp eax, 0x7c
je 0x4b6ba4
cmp eax, 0x29
jne 0x4b6710
cmp dword [esi + 0x10], 0
jne 0x4b6ba4
test dword [esi + 0x50], 0x10000000
je 0x4b6bb1
jmp 0x4b6b35
cmp eax, 0x2e
jne 0x4b6782
push 5
lea ecx, [esi + 0x24]
call fcn.004b6dc0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4b6b85
cmp word [eax], 0x5c
jne 0x4b6778
lea edi, [eax + 2]
mov ecx, eax
cmp edi, edx
je 0x4b6776
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4b6753
movzx ecx, word [edi]
mov edx, eax
cmp ecx, 0x28
je 0x4b6769
cmp ecx, 0x29
je 0x4b6769
mov ecx, eax
test bl, 0x10
jne 0x4b6776
movzx edi, word [edi]
mov edx, eax
cmp edi, 0x7b
je 0x4b6769
mov edx, ecx
cmp edi, 0x7d
jne 0x4b6776
lea eax, [edx + 2]
add eax, 2
mov dword [esi], eax
jmp 0x4b6b85
mov eax, ecx
add eax, 2
mov dword [esi], eax
jmp 0x4b6b85
cmp eax, 0x5c
jne 0x4b68e7
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4b67dc
cmp word [eax], 0x5c
jne 0x4b67d7
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x4b67d5
test byte [esi + 0x50], 8
jne 0x4b67b9
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x4b67d0
cmp ecx, 0x29
je 0x4b67d0
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x4b67d5
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x4b67d0
mov edx, ecx
cmp ebx, 0x7d
jne 0x4b67d5
lea eax, [edx + 2]
jmp 0x4b67d7
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004b4710
test byte [esi + 0x50], 0x80
je 0x4b68db
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x4b686e
push 4
lea ecx, [esi + 0x24]
call fcn.004b6dc0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4b6862
cmp word [eax], 0x5c
jne 0x4b685d
lea ebx, [eax + 2]
mov ecx, eax
cmp ebx, edx
je 0x4b685b
test byte [esi + 0x50], 8
jne 0x4b6830
movzx ecx, word [ebx]
mov edx, eax
cmp ecx, 0x28
je 0x4b6847
cmp ecx, 0x29
je 0x4b6847
mov ecx, eax
test byte [esi + 0x50], 0x10
jne 0x4b685b
movzx ebx, word [ebx]
mov edx, eax
cmp ebx, 0x7b
je 0x4b6847
mov edx, ecx
cmp ebx, 0x7d
jne 0x4b685b
lea eax, [edx + 2]
mov ecx, esi
add eax, 2
mov dword [esi], eax
call fcn.004b4710
jmp 0x4b6b96
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004b4710
jmp 0x4b6b96
cmp ecx, 0x42
jne 0x4b68db
push 4
lea ecx, [esi + 0x24]
call fcn.004b6dc0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4b68cf
cmp word [eax], 0x5c
jne 0x4b68ca
lea ebx, [eax + 2]
cmp ebx, ecx
je 0x4b68ca
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4b68b3
movzx edx, word [ebx]
mov ecx, eax
cmp edx, 0x28
je 0x4b68c7
cmp edx, 0x29
je 0x4b68c7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x4b68ca
movzx edx, word [ebx]
mov ecx, eax
cmp edx, 0x7b
je 0x4b68c7
cmp edx, 0x7d
jne 0x4b68ca
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004b4710
jmp 0x4b6b96
mov ecx, esi
call fcn.004b8d00
jmp 0x4b6b8c
cmp eax, 0x5b
jne 0x4b699b
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4b6938
cmp word [eax], 0x5c
jne 0x4b6933
lea edx, [eax + 2]
cmp edx, ecx
je 0x4b6933
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4b691c
movzx edi, word [edx]
mov ecx, eax
cmp edi, 0x28
je 0x4b6930
cmp edi, 0x29
je 0x4b6930
test bl, 0x10
jne 0x4b6933
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x4b6930
cmp edx, 0x7d
jne 0x4b6933
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004b4710
lea ecx, [esi + 0x24]
call fcn.004bbb70
mov eax, dword [esi + 0x4c]
cmp eax, 0x5e
jne 0x4b6960
mov eax, dword [esi + 0x28]
mov ecx, esi
xor dword [eax + 8], 1
call fcn.004b6680
mov eax, dword [esi + 0x4c]
test dword [esi + 0x50], 0x20000000
je 0x4b697e
cmp eax, 0x5d
jne 0x4b697e
push eax
lea ecx, [esi + 0x24]
call fcn.004bbc00
mov ecx, esi
call fcn.004b6680
mov ecx, esi
call fcn.004bb5c0
cmp dword [esi + 0x4c], 0x5d
jne 0x4b6bbf
mov ecx, esi
call fcn.004b6680
jmp 0x4b6b8c
cmp eax, 0x28
jne 0x4b6a19
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4b69eb
cmp word [eax], 0x5c
jne 0x4b69e6
lea edx, [eax + 2]
cmp edx, ecx
je 0x4b69e6
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4b69cf
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x4b69e3
cmp ebx, 0x29
je 0x4b69e3
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x4b69e6
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x4b69e3
cmp edx, 0x7d
jne 0x4b69e6
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004b4710
mov ecx, esi
call fcn.004b8e50
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x4b6bb1
mov ecx, esi
call fcn.004b6680
test bl, bl
je 0x4b6b96
jmp 0x4b6b8c
cmp eax, 0x5e
jne 0x4b6a82
push 2
lea ecx, [esi + 0x24]
call fcn.004b6dc0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4b6a76
cmp word [eax], 0x5c
jne 0x4b6a71
lea edx, [eax + 2]
cmp edx, ecx
je 0x4b6a71
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4b6a5a
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x4b6a6e
cmp ebx, 0x29
je 0x4b6a6e
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x4b6a71
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x4b6a6e
cmp edx, 0x7d
jne 0x4b6a71
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004b4710
jmp 0x4b6b96
cmp eax, 0x24
jne 0x4b6aeb
push 3
lea ecx, [esi + 0x24]
call fcn.004b6dc0
mov eax, dword [esi]
lea edi, [esi + 8]
mov ecx, dword [edi]
cmp eax, ecx
je 0x4b6adf
cmp word [eax], 0x5c
jne 0x4b6ada
lea edx, [eax + 2]
cmp edx, ecx
je 0x4b6ada
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4b6ac3
movzx ebx, word [edx]
mov ecx, eax
cmp ebx, 0x28
je 0x4b6ad7
cmp ebx, 0x29
je 0x4b6ad7
mov ecx, dword [esi + 0x50]
test cl, 0x10
jne 0x4b6ada
movzx edx, word [edx]
mov ecx, eax
cmp edx, 0x7b
je 0x4b6ad7
cmp edx, 0x7d
jne 0x4b6ada
lea eax, [ecx + 2]
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004b4710
jmp 0x4b6b96
cmp eax, 0x2a
je 0x4b6baa
cmp eax, 0x2b
je 0x4b6baa
cmp eax, 0x3f
je 0x4b6baa
cmp eax, 0x7b
je 0x4b6baa
cmp eax, 0x7d
jne 0x4b6b23
test dword [esi + 0x50], 0x10000000
je 0x4b6bb8
jmp 0x4b6b35
cmp eax, 0x5d
jne 0x4b6b35
test dword [esi + 0x50], 0x10000000
je 0x4b6bbf
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.004b9110
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x4b6b85
cmp word [eax], 0x5c
jne 0x4b6b82
add eax, 2
cmp eax, ecx
je 0x4b6b82
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x4b6b6d
movzx edx, word [eax]
cmp edx, 0x28
je 0x4b6b7f
cmp edx, 0x29
je 0x4b6b7f
test cl, 0x10
jne 0x4b6b82
movzx eax, word [eax]
cmp eax, 0x7b
je 0x4b6b7f
cmp eax, 0x7d
jne 0x4b6b82
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.004b4710
mov ecx, esi
call fcn.004b8f50
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x4b66e6
pop ebx
pop edi
mov al, cl
pop esi
ret
push 0xa
call fcn.004b4700
push 5
call fcn.004b4700
push 6
call fcn.004b4700
push 4
call fcn.004b4700
int3