Function at 0x1003a6a0
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 0x1003a76b
cmp ecx, 0x7c
je 0x1003a76b
cmp ecx, 0x29
jne 0x1003a772
cmp dword [esi + 0x10], 0
jne 0x1003a76b
cmp ecx, ecx
jne 0x1003a772
test dword [esi + 0x50], 0x10000000
je 0x1003ac5c
lea edi, [esi + 0x50]
cmp ecx, 0x5d
jne 0x1003a6fc
test dword [edi], 0x10000000
je 0x1003ac63
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1003ce20
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1003a74f
cmp word [ecx], 0x5c
jne 0x1003a74c
add ecx, 2
cmp ecx, eax
je 0x1003a74c
mov edx, dword [edi]
test dl, 8
jne 0x1003a735
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1003a749
cmp edi, 0x29
je 0x1003a749
test dl, 0x10
jne 0x1003a74c
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1003a749
cmp ecx, 0x7d
jne 0x1003a74c
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.100384f0
mov ecx, esi
call fcn.1003cbf0
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x1003a6b7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp ecx, 0x2e
jne 0x1003a83a
push 0x14
call fcn.1005ca34
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 0x1003a7c8
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 0x1003a74f
cmp word [ecx], 0x5c
jne 0x1003a830
lea ebx, [ecx + 2]
mov edx, ecx
cmp ebx, eax
je 0x1003a82e
mov eax, dword [esi + 0x50]
test al, 8
jne 0x1003a80a
movzx eax, word [ebx]
mov edi, ecx
mov edx, eax
cmp eax, 0x28
je 0x1003a821
cmp edx, 0x29
je 0x1003a821
mov eax, dword [esi + 0x50]
mov edx, ecx
test al, 0x10
jne 0x1003a82e
movzx eax, word [ebx]
mov edi, ecx
mov ebx, eax
cmp eax, 0x7b
je 0x1003a821
mov edi, edx
cmp ebx, 0x7d
jne 0x1003a82e
lea ecx, [edi + 2]
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x1003a74f
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x1003a74f
cmp ecx, 0x5c
jne 0x1003aa00
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1003a89b
cmp word [ecx], 0x5c
jne 0x1003a896
lea ebx, [ecx + 2]
mov edx, ecx
cmp ebx, eax
je 0x1003a894
mov eax, dword [esi + 0x50]
test al, 8
jne 0x1003a878
movzx eax, word [ebx]
mov edi, ecx
mov edx, eax
cmp eax, 0x28
je 0x1003a88f
cmp edx, 0x29
je 0x1003a88f
mov eax, dword [esi + 0x50]
mov edx, ecx
test al, 0x10
jne 0x1003a894
movzx eax, word [ebx]
mov edi, ecx
mov ebx, eax
cmp eax, 0x7b
je 0x1003a88f
mov edi, edx
cmp ebx, 0x7d
jne 0x1003a894
lea ecx, [edi + 2]
jmp 0x1003a896
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.100384f0
mov eax, dword [esi + 0x50]
and eax, 0x80
je 0x1003a988
cmp word [esi + 0x48], 0x62
jne 0x1003a988
push 0x14
call fcn.1005ca34
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 0x1003a908
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 0x1003ac14
cmp word [ecx], 0x5c
jne 0x1003a977
lea ebx, [ecx + 2]
mov edx, ecx
cmp ebx, eax
je 0x1003a975
mov eax, dword [esi + 0x50]
test al, 8
jne 0x1003a94a
movzx eax, word [ebx]
mov edi, ecx
mov edx, eax
cmp eax, 0x28
je 0x1003a961
cmp edx, 0x29
je 0x1003a961
mov eax, dword [esi + 0x50]
mov edx, ecx
test al, 0x10
jne 0x1003a975
movzx eax, word [ebx]
mov edi, ecx
mov ebx, eax
cmp eax, 0x7b
je 0x1003a961
mov edi, edx
cmp ebx, 0x7d
jne 0x1003a975
lea ecx, [edi + 2]
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.100384f0
jmp 0x1003a75d
mov ecx, edx
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.100384f0
jmp 0x1003a75d
test eax, eax
je 0x1003a9f4
cmp word [esi + 0x48], 0x42
jne 0x1003a9f4
push 0x14
call fcn.1005ca34
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 0x1003a9e0
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 0x1003abcd
mov ecx, esi
call fcn.1003c8f0
jmp 0x1003a756
cmp ecx, 0x5b
jne 0x1003aa92
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1003aa50
cmp word [ecx], 0x5c
jne 0x1003aa4d
add ecx, 2
cmp ecx, eax
je 0x1003aa4d
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003aa36
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1003aa4a
cmp edi, 0x29
je 0x1003aa4a
test dl, 0x10
jne 0x1003aa4d
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1003aa4a
cmp ecx, 0x7d
jne 0x1003aa4d
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.100384f0
mov ecx, esi
call fcn.1003c7a0
cmp dword [esi + 0x4c], 0x5d
jne 0x1003ac63
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1003a74f
cmp word [ecx], 0x5c
jne 0x1003a74c
add ecx, 2
cmp ecx, eax
je 0x1003a74c
mov edx, dword [esi + 0x50]
jmp 0x1003a721
cmp ecx, 0x28
jne 0x1003ab57
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x1003aae2
cmp word [ecx], 0x5c
jne 0x1003aadf
add ecx, 2
cmp ecx, eax
je 0x1003aadf
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003aac8
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1003aadc
cmp edi, 0x29
je 0x1003aadc
test dl, 0x10
jne 0x1003aadf
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1003aadc
cmp ecx, 0x7d
jne 0x1003aadf
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.100384f0
mov ecx, esi
call fcn.1003ca40
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x1003ac5c
mov ecx, dword [esi]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x1003ab43
cmp word [ecx], 0x5c
jne 0x1003ab40
add ecx, 2
cmp ecx, edx
je 0x1003ab40
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003ab29
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1003ab3d
cmp edi, 0x29
je 0x1003ab3d
test dl, 0x10
jne 0x1003ab40
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1003ab3d
cmp ecx, 0x7d
jne 0x1003ab40
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.100384f0
test bl, bl
je 0x1003a75d
jmp 0x1003a756
cmp ecx, 0x5e
jne 0x1003ab6e
push 0x14
call fcn.1005ca34
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x1003ab87
cmp ecx, 0x24
jne 0x1003ac20
push 0x14
call fcn.1005ca34
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 0x1003abc4
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 0x1003ac14
cmp word [ecx], 0x5c
jne 0x1003ac11
add ecx, 2
cmp ecx, eax
je 0x1003ac11
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x1003abfa
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x1003ac0e
cmp edi, 0x29
je 0x1003ac0e
test dl, 0x10
jne 0x1003ac11
movzx eax, word [ecx]
mov ecx, eax
cmp eax, 0x7b
je 0x1003ac0e
cmp ecx, 0x7d
jne 0x1003ac11
add dword [esi], 2
add dword [esi], 2
mov ecx, esi
call fcn.100384f0
jmp 0x1003a75d
cmp ecx, 0x2a
je 0x1003ac4e
cmp ecx, 0x2b
je 0x1003ac4e
cmp ecx, 0x3f
je 0x1003ac4e
cmp ecx, 0x7b
je 0x1003ac4e
cmp ecx, 0x7d
jne 0x1003a6e8
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x1003ac55
jmp 0x1003a6fc
push 0xa
call fcn.100384e0
push 6
call fcn.100384e0
push 5
call fcn.100384e0
push 4
call fcn.100384e0
int3