Function at 0x10015960
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
cmp dword [esi + 0x4c], 0xffffffff
je 0x10015d14
mov eax, dword [esi + 0x4c]
cmp eax, 0x7c
je 0x10015d14
cmp eax, 0x29
jne 0x10015999
cmp dword [esi + 0x10], 0
jne 0x10015d14
test dword [esi + 0x50], 0x10000000
je 0x10015d1a
cmp eax, 0x2e
jne 0x10015a4b
push 0x14
call fcn.1001c368
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x100159d6
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 5
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
jmp 0x100159d8
xor ecx, ecx
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x100159f4
mov dword [ecx + 0xc], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
mov dword [eax + 0x10], ecx
mov eax, dword [esi + 0x28]
mov dword [eax + 0xc], ecx
mov dword [esi + 0x28], ecx
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10015a3f
cmp word [eax], 0x5c
jne 0x10015a3c
add eax, 2
cmp eax, ecx
je 0x10015a3c
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10015a28
movzx edx, word [eax]
cmp edx, 0x28
je 0x10015a3a
cmp edx, 0x29
je 0x10015a3a
test cl, 0x10
jne 0x10015a3c
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x10015a3a
cmp ecx, 0x7d
jne 0x10015a3c
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.10013c80
jmp 0x10015d01
cmp eax, 0x5c
jne 0x10015b78
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10015a96
cmp word [eax], 0x5c
jne 0x10015a93
add eax, 2
cmp eax, ecx
je 0x10015a93
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10015a7f
movzx edx, word [eax]
cmp edx, 0x28
je 0x10015a91
cmp edx, 0x29
je 0x10015a91
test cl, 0x10
jne 0x10015a93
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x10015a91
cmp ecx, 0x7d
jne 0x10015a93
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.10013c80
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x10015b04
cmp word [esi + 0x48], 0x62
jne 0x10015b04
lea ecx, [esi + 0x24]
call fcn.10016ca0
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10015af8
cmp word [eax], 0x5c
jne 0x10015af5
add eax, 2
cmp eax, ecx
je 0x10015af5
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10015ae1
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x10015af3
cmp ecx, 0x29
je 0x10015af3
test dl, 0x10
jne 0x10015af5
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x10015af3
cmp ecx, 0x7d
jne 0x10015af5
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.10013c80
jmp 0x10015d08
test eax, eax
je 0x10015b6c
cmp word [esi + 0x48], 0x42
jne 0x10015b6c
lea ecx, [esi + 0x24]
call fcn.10016ca0
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10015b60
cmp word [eax], 0x5c
jne 0x10015b5d
add eax, 2
cmp eax, ecx
je 0x10015b5d
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10015b49
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x10015b5b
cmp ecx, 0x29
je 0x10015b5b
test dl, 0x10
jne 0x10015b5d
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x10015b5b
cmp ecx, 0x7d
jne 0x10015b5d
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.10013c80
jmp 0x10015d08
mov ecx, esi
call fcn.10016910
jmp 0x10015d01
cmp eax, 0x5b
jne 0x10015c29
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10015bc3
cmp word [eax], 0x5c
jne 0x10015bc0
add eax, 2
cmp eax, ecx
je 0x10015bc0
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10015bac
movzx edx, word [eax]
cmp edx, 0x28
je 0x10015bbe
cmp edx, 0x29
je 0x10015bbe
test cl, 0x10
jne 0x10015bc0
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x10015bbe
cmp ecx, 0x7d
jne 0x10015bc0
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.10013c80
mov ecx, esi
call fcn.10016860
cmp dword [esi + 0x4c], 0x5d
jne 0x10015d21
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10015c1d
cmp word [eax], 0x5c
jne 0x10015c1a
add eax, 2
cmp eax, ecx
je 0x10015c1a
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10015c06
movzx edx, word [eax]
cmp edx, 0x28
je 0x10015c18
cmp edx, 0x29
je 0x10015c18
test cl, 0x10
jne 0x10015c1a
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x10015c18
cmp ecx, 0x7d
jne 0x10015c1a
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.10013c80
jmp 0x10015d01
cmp eax, 0x28
jne 0x10015c91
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10015c70
cmp word [eax], 0x5c
jne 0x10015c6d
add eax, 2
cmp eax, ecx
je 0x10015c6d
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10015c59
movzx edx, word [eax]
cmp edx, 0x28
je 0x10015c6b
cmp edx, 0x29
je 0x10015c6b
test cl, 0x10
jne 0x10015c6d
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x10015c6b
cmp ecx, 0x7d
jne 0x10015c6d
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.10013c80
mov ecx, esi
call fcn.100169f0
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.100167f0
test bl, bl
je 0x10015d08
jmp 0x10015d01
cmp eax, 0x5e
jne 0x10015ca7
lea ecx, [esi + 0x24]
call fcn.10016be0
mov ecx, esi
call fcn.10015910
jmp 0x10015d08
cmp eax, 0x24
jne 0x10015cbd
lea ecx, [esi + 0x24]
call fcn.10016c40
mov ecx, esi
call fcn.10015910
jmp 0x10015d08
cmp eax, 0x2a
je 0x10015d2f
cmp eax, 0x2b
je 0x10015d2f
cmp eax, 0x3f
je 0x10015d2f
cmp eax, 0x7b
je 0x10015d2f
cmp eax, 0x7d
jne 0x10015cdf
test dword [esi + 0x50], 0x10000000
je 0x10015d28
cmp eax, 0x5d
jne 0x10015ced
test dword [esi + 0x50], 0x10000000
je 0x10015d21
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.10016d00
mov ecx, esi
call fcn.10015910
mov ecx, esi
call fcn.10016ab0
cmp dword [esi + 0x4c], 0xffffffff
mov cl, 1
jne 0x10015971
pop esi
mov al, cl
pop ebx
pop ecx
ret
push 5
call fcn.1001bb2b
push 4
call fcn.1001bb2b
push 6
call fcn.1001bb2b
push 0xa
call fcn.1001bb2b
int3