Function at 0x1003a200
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push ecx
push ebx
push esi
mov esi, ecx
xor al, al
push edi
mov ecx, dword [esi + 0x4c]
cmp ecx, 0xffffffff
je 0x1003a73b
cmp ecx, 0x7c
je 0x1003a73b
cmp ecx, 0x29
jne 0x1003a248
cmp dword [esi + 0x10], 0
jne 0x1003a73b
cmp ecx, ecx
jne 0x1003a248
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x1003a749
jmp 0x1003a6a9
lea edi, [esi + 0x50]
cmp ecx, 0x2e
jne 0x1003a2fd
push 0x14
call fcn.1005b44d
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
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 eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1003a2a1
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 ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1003a71f
cmp word [ecx], 0x5c
jne 0x1003a2f3
lea edx, [ecx + 2]
cmp edx, eax
je 0x1003a2f3
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003a2dd
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x1003a2f1
cmp ecx, 0x29
je 0x1003a2f1
mov ecx, dword [esi]
test bl, 0x10
jne 0x1003a2f3
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x1003a2f1
cmp edi, 0x7d
jne 0x1003a2f3
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x1003a71f
cmp ecx, 0x5c
jne 0x1003a496
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1003a350
cmp word [ecx], 0x5c
jne 0x1003a34b
lea edx, [ecx + 2]
cmp edx, eax
je 0x1003a34b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x1003a335
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x1003a349
cmp ecx, 0x29
je 0x1003a349
mov ecx, dword [esi]
test bl, 0x10
jne 0x1003a34b
movzx eax, word [edx]
mov ebx, eax
cmp eax, 0x7b
je 0x1003a349
cmp ebx, 0x7d
jne 0x1003a34b
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.10038110
mov eax, dword [edi]
and eax, 0x80
je 0x1003a41e
cmp word [esi + 0x48], 0x62
jne 0x1003a41e
push 0x14
call fcn.1005b44d
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1003a3bc
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 ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1003a679
cmp word [ecx], 0x5c
jne 0x1003a40d
lea edx, [ecx + 2]
cmp edx, eax
je 0x1003a40d
mov ebx, dword [edi]
test bl, 8
jne 0x1003a3f7
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x1003a40b
cmp ecx, 0x29
je 0x1003a40b
mov ecx, dword [esi]
test bl, 0x10
jne 0x1003a40d
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x1003a40b
cmp edi, 0x7d
jne 0x1003a40d
mov ecx, edx
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.10038110
jmp 0x1003a72d
test eax, eax
je 0x1003a48a
cmp word [esi + 0x48], 0x42
jne 0x1003a48a
push 0x14
call fcn.1005b44d
mov ecx, eax
add esp, 4
mov dword [ebp - 4], ecx
mov dword [ecx + 0x10], 0
mov dword [ecx], vtable.std::_Node_base.0
mov dword [ecx + 4], 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1003a476
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 eax, ecx
mov dword [esi + 0x28], ecx
xor dword [eax + 8], 1
jmp 0x1003a634
mov ecx, esi
call fcn.1003c3a0
jmp 0x1003a726
cmp ecx, 0x5b
jne 0x1003a4fd
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1003a4e0
cmp word [ecx], 0x5c
jne 0x1003a4dd
add ecx, 2
cmp ecx, eax
je 0x1003a4dd
mov edx, dword [edi]
test dl, 8
jne 0x1003a4c7
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x1003a4db
cmp ebx, 0x29
je 0x1003a4db
test dl, 0x10
jne 0x1003a4dd
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1003a4db
cmp edx, 0x7d
jne 0x1003a4dd
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.10038110
mov ecx, esi
call fcn.1003c250
cmp dword [esi + 0x4c], 0x5d
jne 0x1003a750
jmp 0x1003a6da
cmp ecx, 0x28
jne 0x1003a5be
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1003a54b
cmp word [ecx], 0x5c
jne 0x1003a548
add ecx, 2
cmp ecx, eax
je 0x1003a548
mov edx, dword [edi]
test dl, 8
jne 0x1003a532
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x1003a546
cmp ebx, 0x29
je 0x1003a546
test dl, 0x10
jne 0x1003a548
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1003a546
cmp edx, 0x7d
jne 0x1003a548
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.10038110
mov ecx, esi
call fcn.1003c4f0
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1003a749
mov ecx, dword [esi]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x1003a5aa
cmp word [ecx], 0x5c
jne 0x1003a5a7
add ecx, 2
cmp ecx, edx
je 0x1003a5a7
mov edx, dword [edi]
test dl, 8
jne 0x1003a591
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1003a5a5
cmp edi, 0x29
je 0x1003a5a5
test dl, 0x10
jne 0x1003a5a7
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1003a5a5
cmp edx, 0x7d
jne 0x1003a5a7
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.10038110
test bl, bl
je 0x1003a72d
jmp 0x1003a726
cmp ecx, 0x5e
jne 0x1003a5d5
push 0x14
call fcn.1005b44d
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x1003a5ee
cmp ecx, 0x24
jne 0x1003a685
push 0x14
call fcn.1005b44d
mov ecx, eax
mov dword [ecx + 4], 3
mov dword [ecx], vtable.std::_Node_base.0
add esp, 4
mov dword [ecx + 8], 0
mov dword [ecx + 0xc], 0
mov dword [ecx + 0x10], 0
mov eax, dword [esi + 0x28]
mov dword [ecx + 0x10], eax
mov eax, dword [esi + 0x28]
mov dword [ebp - 4], ecx
mov eax, dword [eax + 0xc]
test eax, eax
je 0x1003a62b
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 + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x1003a679
cmp word [ecx], 0x5c
jne 0x1003a676
add ecx, 2
cmp ecx, eax
je 0x1003a676
mov edx, dword [edi]
test dl, 8
jne 0x1003a660
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1003a674
cmp edi, 0x29
je 0x1003a674
test dl, 0x10
jne 0x1003a676
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1003a674
cmp edx, 0x7d
jne 0x1003a676
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.10038110
jmp 0x1003a72d
cmp ecx, 0x2a
je 0x1003a742
cmp ecx, 0x2b
je 0x1003a742
cmp ecx, 0x3f
je 0x1003a742
cmp ecx, 0x7b
je 0x1003a742
cmp ecx, 0x7d
jne 0x1003a6bc
test dword [edi], 0x10000000
je 0x1003a757
jmp 0x1003a6cd
cmp ecx, 0x5d
jne 0x1003a6cd
test dword [edi], 0x10000000
je 0x1003a750
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1003c8a0
mov eax, dword [esi + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x1003a71f
cmp word [ecx], 0x5c
jne 0x1003a71c
add ecx, 2
cmp ecx, eax
je 0x1003a71c
mov edx, dword [edi]
test dl, 8
jne 0x1003a706
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1003a71a
cmp edi, 0x29
je 0x1003a71a
test dl, 0x10
jne 0x1003a71c
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x1003a71a
cmp edx, 0x7d
jne 0x1003a71c
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.10038110
mov ecx, esi
call fcn.1003c670
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x1003a217
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.10038100
push 5
call fcn.10038100
push 4
call fcn.10038100
push 6
call fcn.10038100
int3