Function at 0x40ad90
Capabilities:
Parse credit card information

Disassembly:
push ecx
push ebx
push esi
mov esi, ecx
xor cl, cl
mov eax, dword [esi + 0x4c]
cmp eax, 0xffffffff
je 0x40b15b
cmp eax, 0x7c
je 0x40b15b
cmp eax, 0x29
jne 0x40adc8
cmp dword [esi + 0x10], 0
jne 0x40b15b
test dword [esi + 0x50], 0x10000000
je 0x40b161
cmp eax, 0x2e
jne 0x40ae88
push 0x14
call fcn.004113a7
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x40ae13
xorps xmm0, xmm0
movdqu xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
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 0x40ae15
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 0x40ae31
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 0x40ae7c
cmp word [eax], 0x5c
jne 0x40ae79
add eax, 2
cmp eax, ecx
je 0x40ae79
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40ae65
movzx edx, word [eax]
cmp edx, 0x28
je 0x40ae77
cmp edx, 0x29
je 0x40ae77
test cl, 0x10
jne 0x40ae79
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40ae77
cmp ecx, 0x7d
jne 0x40ae79
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0040a190
jmp 0x40b146
cmp eax, 0x5c
jne 0x40afb9
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40aed3
cmp word [eax], 0x5c
jne 0x40aed0
add eax, 2
cmp eax, ecx
je 0x40aed0
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40aebc
movzx edx, word [eax]
cmp edx, 0x28
je 0x40aece
cmp edx, 0x29
je 0x40aece
test cl, 0x10
jne 0x40aed0
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40aece
cmp ecx, 0x7d
jne 0x40aed0
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0040a190
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x40af43
cmp word [esi + 0x48], 0x62
jne 0x40af43
push 4
lea ecx, [esi + 0x24]
call fcn.0040b370
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40af37
cmp word [eax], 0x5c
jne 0x40af34
add eax, 2
cmp eax, ecx
je 0x40af34
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40af20
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40af32
cmp ecx, 0x29
je 0x40af32
test dl, 0x10
jne 0x40af34
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40af32
cmp ecx, 0x7d
jne 0x40af34
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0040a190
jmp 0x40b14d
test eax, eax
je 0x40afad
cmp word [esi + 0x48], 0x42
jne 0x40afad
push 4
lea ecx, [esi + 0x24]
call fcn.0040b370
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40afa1
cmp word [eax], 0x5c
jne 0x40af9e
add eax, 2
cmp eax, ecx
je 0x40af9e
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x40af8a
movzx ecx, word [eax]
cmp ecx, 0x28
je 0x40af9c
cmp ecx, 0x29
je 0x40af9c
test dl, 0x10
jne 0x40af9e
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40af9c
cmp ecx, 0x7d
jne 0x40af9e
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0040a190
jmp 0x40b14d
mov ecx, esi
call fcn.0040c450
jmp 0x40b146
cmp eax, 0x5b
jne 0x40b06a
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40b004
cmp word [eax], 0x5c
jne 0x40b001
add eax, 2
cmp eax, ecx
je 0x40b001
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40afed
movzx edx, word [eax]
cmp edx, 0x28
je 0x40afff
cmp edx, 0x29
je 0x40afff
test cl, 0x10
jne 0x40b001
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40afff
cmp ecx, 0x7d
jne 0x40b001
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0040a190
mov ecx, esi
call fcn.0040c3a0
cmp dword [esi + 0x4c], 0x5d
jne 0x40b168
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40b05e
cmp word [eax], 0x5c
jne 0x40b05b
add eax, 2
cmp eax, ecx
je 0x40b05b
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40b047
movzx edx, word [eax]
cmp edx, 0x28
je 0x40b059
cmp edx, 0x29
je 0x40b059
test cl, 0x10
jne 0x40b05b
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40b059
cmp ecx, 0x7d
jne 0x40b05b
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0040a190
jmp 0x40b146
cmp eax, 0x28
jne 0x40b0d2
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x40b0b1
cmp word [eax], 0x5c
jne 0x40b0ae
add eax, 2
cmp eax, ecx
je 0x40b0ae
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x40b09a
movzx edx, word [eax]
cmp edx, 0x28
je 0x40b0ac
cmp edx, 0x29
je 0x40b0ac
test cl, 0x10
jne 0x40b0ae
movzx ecx, word [eax]
cmp ecx, 0x7b
je 0x40b0ac
cmp ecx, 0x7d
jne 0x40b0ae
mov dword [esi], eax
add dword [esi], 2
mov ecx, esi
call fcn.0040a190
mov ecx, esi
call fcn.0040c520
push 5
push 0x29
mov ecx, esi
mov bl, al
call fcn.0040c330
test bl, bl
je 0x40b14d
jmp 0x40b146
cmp eax, 0x5e
jne 0x40b0ea
push 2
lea ecx, [esi + 0x24]
call fcn.0040b370
mov ecx, esi
call fcn.0040ad40
jmp 0x40b14d
cmp eax, 0x24
jne 0x40b102
push 3
lea ecx, [esi + 0x24]
call fcn.0040b370
mov ecx, esi
call fcn.0040ad40
jmp 0x40b14d
cmp eax, 0x2a
je 0x40b176
cmp eax, 0x2b
je 0x40b176
cmp eax, 0x3f
je 0x40b176
cmp eax, 0x7b
je 0x40b176
cmp eax, 0x7d
jne 0x40b124
test dword [esi + 0x50], 0x10000000
je 0x40b16f
cmp eax, 0x5d
jne 0x40b132
test dword [esi + 0x50], 0x10000000
je 0x40b168
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.0040c750
mov ecx, esi
call fcn.0040ad40
mov ecx, esi
call fcn.0040c620
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x40ada3
pop esi
mov al, cl
pop ebx
pop ecx
ret
push 5
call fcn.00552bd0
push 4
call fcn.00552bd0
push 6
call fcn.00552bd0
push 0xa
call fcn.00552bd0
int3