Function at 0x100395a0
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 0x100399b2
cmp eax, 0x7c
je 0x100399b2
cmp eax, 0x29
jne 0x100395d8
cmp dword [esi + 0x10], 0
jne 0x100399b2
test dword [esi + 0x50], 0x10000000
je 0x100399b8
cmp eax, 0x2e
jne 0x10039684
push 0x14
call fcn.10086a49
mov ecx, eax
add esp, 4
test ecx, ecx
je 0x10039615
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 0x10039617
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 0x10039633
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 0x10039678
cmp byte [eax], 0x5c
jne 0x10039676
inc eax
cmp eax, ecx
je 0x10039676
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10039663
mov dl, byte [eax]
cmp dl, 0x28
je 0x10039674
cmp dl, 0x29
je 0x10039674
test cl, 0x10
jne 0x10039676
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10039674
cmp cl, 0x7d
jne 0x10039676
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10038af0
jmp 0x1003999d
cmp eax, 0x5c
jne 0x1003979d
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x100396c9
cmp byte [eax], 0x5c
jne 0x100396c7
inc eax
cmp eax, ecx
je 0x100396c7
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100396b4
mov dl, byte [eax]
cmp dl, 0x28
je 0x100396c5
cmp dl, 0x29
je 0x100396c5
test cl, 0x10
jne 0x100396c7
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100396c5
cmp cl, 0x7d
jne 0x100396c7
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10038af0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x10039730
cmp byte [esi + 0x48], 0x62
jne 0x10039730
lea ecx, [esi + 0x24]
call fcn.1003af20
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10039724
cmp byte [eax], 0x5c
jne 0x10039722
inc eax
cmp eax, ecx
je 0x10039722
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003970f
mov cl, byte [eax]
cmp cl, 0x28
je 0x10039720
cmp cl, 0x29
je 0x10039720
test dl, 0x10
jne 0x10039722
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10039720
cmp cl, 0x7d
jne 0x10039722
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10038af0
jmp 0x100399a4
test eax, eax
je 0x10039791
cmp byte [esi + 0x48], 0x42
jne 0x10039791
lea ecx, [esi + 0x24]
call fcn.1003af20
mov eax, dword [esi + 0x28]
xor dword [eax + 8], 1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10039785
cmp byte [eax], 0x5c
jne 0x10039783
inc eax
cmp eax, ecx
je 0x10039783
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10039770
mov cl, byte [eax]
cmp cl, 0x28
je 0x10039781
cmp cl, 0x29
je 0x10039781
test dl, 0x10
jne 0x10039783
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10039781
cmp cl, 0x7d
jne 0x10039783
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10038af0
jmp 0x100399a4
mov ecx, esi
call fcn.1003aba0
jmp 0x1003999d
cmp eax, 0x5b
jne 0x10039842
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x100397e2
cmp byte [eax], 0x5c
jne 0x100397e0
inc eax
cmp eax, ecx
je 0x100397e0
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100397cd
mov dl, byte [eax]
cmp dl, 0x28
je 0x100397de
cmp dl, 0x29
je 0x100397de
test cl, 0x10
jne 0x100397e0
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100397de
cmp cl, 0x7d
jne 0x100397e0
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10038af0
mov ecx, esi
call fcn.1003aaf0
cmp dword [esi + 0x4c], 0x5d
jne 0x100399bf
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10039836
cmp byte [eax], 0x5c
jne 0x10039834
inc eax
cmp eax, ecx
je 0x10039834
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10039821
mov dl, byte [eax]
cmp dl, 0x28
je 0x10039832
cmp dl, 0x29
je 0x10039832
test cl, 0x10
jne 0x10039834
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10039832
cmp cl, 0x7d
jne 0x10039834
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10038af0
jmp 0x1003999d
cmp eax, 0x28
jne 0x100398f1
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10039887
cmp byte [eax], 0x5c
jne 0x10039885
inc eax
cmp eax, ecx
je 0x10039885
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10039872
mov dl, byte [eax]
cmp dl, 0x28
je 0x10039883
cmp dl, 0x29
je 0x10039883
test cl, 0x10
jne 0x10039885
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10039883
cmp cl, 0x7d
jne 0x10039885
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10038af0
mov ecx, esi
call fcn.1003ac70
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x100399b8
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x100398dd
cmp byte [eax], 0x5c
jne 0x100398db
inc eax
cmp eax, ecx
je 0x100398db
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x100398c8
mov dl, byte [eax]
cmp dl, 0x28
je 0x100398d9
cmp dl, 0x29
je 0x100398d9
test cl, 0x10
jne 0x100398db
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100398d9
cmp cl, 0x7d
jne 0x100398db
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10038af0
test bl, bl
je 0x100399a4
jmp 0x1003999d
cmp eax, 0x5e
jne 0x10039943
lea ecx, [esi + 0x24]
call fcn.1003ae60
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1003993a
cmp byte [eax], 0x5c
jne 0x10039938
inc eax
cmp eax, ecx
je 0x10039938
mov ecx, dword [esi + 0x50]
test cl, 8
jne 0x10039925
mov dl, byte [eax]
cmp dl, 0x28
je 0x10039936
cmp dl, 0x29
je 0x10039936
test cl, 0x10
jne 0x10039938
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10039936
cmp cl, 0x7d
jne 0x10039938
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10038af0
jmp 0x100399a4
cmp eax, 0x24
jne 0x10039959
lea ecx, [esi + 0x24]
call fcn.1003aec0
mov ecx, esi
call fcn.10039550
jmp 0x100399a4
cmp eax, 0x2a
je 0x100399cd
cmp eax, 0x2b
je 0x100399cd
cmp eax, 0x3f
je 0x100399cd
cmp eax, 0x7b
je 0x100399cd
cmp eax, 0x7d
jne 0x1003997b
test dword [esi + 0x50], 0x10000000
je 0x100399c6
cmp eax, 0x5d
jne 0x10039989
test dword [esi + 0x50], 0x10000000
je 0x100399bf
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1003af80
mov ecx, esi
call fcn.10039550
mov ecx, esi
call fcn.1003ad30
mov eax, dword [esi + 0x4c]
mov cl, 1
cmp eax, 0xffffffff
jne 0x100395b3
pop esi
mov al, cl
pop ebx
pop ecx
ret
push 5
call fcn.100817e6
push 4
call fcn.100817e6
push 6
call fcn.100817e6
push 0xa
call fcn.100817e6
int3