Function at 0x4156f0
Capabilities:
Parse credit card information

Disassembly:
push ebx
push esi
mov esi, ecx
xor cl, cl
push edi
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x415b9d
lea edi, [esi + 8]
cmp eax, 0x7c
je 0x415b9d
cmp eax, 0x29
jne 0x415730
cmp dword [esi + 0x10], 0
jne 0x415b9d
test dword [esi + 0x50], 0x10000000
je 0x415baa
jmp 0x415b30
cmp eax, 0x2e
jne 0x415785
push 5
lea ecx, [esi + 0x24]
call fcn.00415bc0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x415b7e
cmp word [eax], 0x5c
jne 0x415963
lea ecx, [eax + 2]
cmp ecx, edx
je 0x415963
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x41577d
movzx edx, word [ecx]
cmp edx, 0x28
je 0x415961
cmp edx, 0x29
je 0x415961
test bl, 0x10
jmp 0x415952
cmp eax, 0x5c
jne 0x4158b9
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4157d1
cmp word [eax], 0x5c
jne 0x4157cc
lea ecx, [eax + 2]
cmp ecx, edx
je 0x4157cc
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x4157b8
movzx edx, word [ecx]
cmp edx, 0x28
je 0x4157ca
cmp edx, 0x29
je 0x4157ca
test bl, 0x10
jne 0x4157cc
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x4157ca
cmp edx, 0x7d
jne 0x4157cc
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004145e0
test byte [esi + 0x50], 0x80
je 0x4158ad
movzx eax, word [esi + 0x48]
mov ecx, eax
cmp eax, 0x62
jne 0x415846
push 4
lea ecx, [esi + 0x24]
call fcn.00415bc0
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x41583a
cmp word [eax], 0x5c
jne 0x415835
lea ecx, [eax + 2]
cmp ecx, edx
je 0x415835
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x415821
movzx edx, word [ecx]
cmp edx, 0x28
je 0x415833
cmp edx, 0x29
je 0x415833
test bl, 0x10
jne 0x415835
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x415833
cmp edx, 0x7d
jne 0x415835
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004145e0
jmp 0x415b8f
cmp ecx, 0x42
jne 0x4158ad
push 4
lea ecx, [esi + 0x24]
call fcn.00415bc0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4158a1
cmp word [eax], 0x5c
jne 0x41589c
lea ecx, [eax + 2]
cmp ecx, edx
je 0x41589c
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x415888
movzx eax, word [ecx]
cmp eax, 0x28
je 0x41589a
cmp eax, 0x29
je 0x41589a
mov eax, dword [esi]
test dl, 0x10
jne 0x41589c
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x41589a
cmp edx, 0x7d
jne 0x41589c
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004145e0
jmp 0x415b8f
mov ecx, esi
call fcn.00416580
jmp 0x415b85
cmp eax, 0x5b
jne 0x41596d
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x415907
cmp word [eax], 0x5c
jne 0x415902
lea ecx, [eax + 2]
cmp ecx, edx
je 0x415902
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x4158ee
movzx eax, word [ecx]
cmp eax, 0x28
je 0x415900
cmp eax, 0x29
je 0x415900
mov eax, dword [esi]
test dl, 0x10
jne 0x415902
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x415900
cmp edx, 0x7d
jne 0x415902
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004145e0
mov ecx, esi
call fcn.004164a0
cmp dword [esi + 0x4c], 0x5d
jne 0x415bb8
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x415b7e
cmp word [eax], 0x5c
jne 0x415963
lea ecx, [eax + 2]
cmp ecx, edx
je 0x415963
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x41594f
movzx eax, word [ecx]
cmp eax, 0x28
je 0x415961
cmp eax, 0x29
je 0x415961
mov eax, dword [esi]
test dl, 0x10
jne 0x415963
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x415961
cmp edx, 0x7d
jne 0x415963
mov eax, ecx
add eax, 2
mov dword [esi], eax
jmp 0x415b7e
cmp eax, 0x28
jne 0x415a2e
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x4159bb
cmp word [eax], 0x5c
jne 0x4159b6
lea ecx, [eax + 2]
cmp ecx, edx
je 0x4159b6
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x4159a2
movzx eax, word [ecx]
cmp eax, 0x28
je 0x4159b4
cmp eax, 0x29
je 0x4159b4
mov eax, dword [esi]
test dl, 0x10
jne 0x4159b6
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x4159b4
cmp edx, 0x7d
jne 0x4159b6
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004145e0
mov ecx, esi
call fcn.00416710
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x415baa
mov eax, dword [esi]
mov edx, dword [edi]
cmp eax, edx
je 0x415a1a
cmp word [eax], 0x5c
jne 0x415a15
lea ecx, [eax + 2]
cmp ecx, edx
je 0x415a15
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x415a01
movzx eax, word [ecx]
cmp eax, 0x28
je 0x415a13
cmp eax, 0x29
je 0x415a13
mov eax, dword [esi]
test dl, 0x10
jne 0x415a15
movzx edx, word [ecx]
cmp edx, 0x7b
je 0x415a13
cmp edx, 0x7d
jne 0x415a15
mov eax, ecx
add eax, 2
mov dword [esi], eax
mov ecx, esi
call fcn.004145e0
test bl, bl
je 0x415b8f
jmp 0x415b85
cmp eax, 0x5e
jne 0x415a8a
push 2
lea ecx, [esi + 0x24]
call fcn.00415bc0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x415a7e
cmp word [eax], 0x5c
jne 0x415a7b
add eax, 2
cmp eax, ecx
je 0x415a7b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x415a67
movzx edx, word [eax]
cmp edx, 0x28
je 0x415a79
cmp edx, 0x29
je 0x415a79
test cl, 0x10
jne 0x415a7b
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x415a79
cmp ecx, 0x7d
jne 0x415a7b
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004145e0
jmp 0x415b8f
cmp eax, 0x24
jne 0x415ae6
push 3
lea ecx, [esi + 0x24]
call fcn.00415bc0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x415ada
cmp word [eax], 0x5c
jne 0x415ad7
add eax, 2
cmp eax, ecx
je 0x415ad7
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x415ac3
movzx edx, word [eax]
cmp edx, 0x28
je 0x415ad5
cmp edx, 0x29
je 0x415ad5
test cl, 0x10
jne 0x415ad7
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x415ad5
cmp ecx, 0x7d
jne 0x415ad7
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004145e0
jmp 0x415b8f
cmp eax, 0x2a
je 0x415ba3
cmp eax, 0x2b
je 0x415ba3
cmp eax, 0x3f
je 0x415ba3
cmp eax, 0x7b
je 0x415ba3
cmp eax, 0x7d
jne 0x415b1e
test dword [esi + 0x50], 0x10000000
je 0x415bb1
jmp 0x415b30
cmp eax, 0x5d
jne 0x415b30
test dword [esi + 0x50], 0x10000000
je 0x415bb8
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.00416ae0
mov eax, dword [esi]
mov ecx, dword [edi]
cmp eax, ecx
je 0x415b7e
cmp word [eax], 0x5c
jne 0x415b7b
add eax, 2
cmp eax, ecx
je 0x415b7b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x415b67
movzx edx, word [eax]
cmp edx, 0x28
je 0x415b79
cmp edx, 0x29
je 0x415b79
test cl, 0x10
jne 0x415b7b
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x415b79
cmp ecx, 0x7d
jne 0x415b7b
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.004145e0
mov ecx, esi
call fcn.004168b0
lea edi, [esi + 8]
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x415706
pop edi
pop esi
mov al, cl
pop ebx
ret
push 0xa
call fcn.004145d0
push 5
call fcn.004145d0
push 6
call fcn.004145d0
push 4
call fcn.004145d0
int3