Function at 0x10048800
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 0x10048d3b
cmp ecx, 0x7c
je 0x10048d3b
cmp ecx, 0x29
jne 0x10048848
cmp dword [esi + 0x10], 0
jne 0x10048d3b
cmp ecx, ecx
jne 0x10048848
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x10048d49
jmp 0x10048ca9
lea edi, [esi + 0x50]
cmp ecx, 0x2e
jne 0x100488fd
push 0x14
call fcn.100c742f
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 0x100488a1
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 0x10048d1f
cmp word [ecx], 0x5c
jne 0x100488f3
lea edx, [ecx + 2]
cmp edx, eax
je 0x100488f3
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x100488dd
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x100488f1
cmp ecx, 0x29
je 0x100488f1
mov ecx, dword [esi]
test bl, 0x10
jne 0x100488f3
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x100488f1
cmp edi, 0x7d
jne 0x100488f3
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
jmp 0x10048d1f
cmp ecx, 0x5c
jne 0x10048a96
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x10048950
cmp word [ecx], 0x5c
jne 0x1004894b
lea edx, [ecx + 2]
cmp edx, eax
je 0x1004894b
mov ebx, dword [esi + 0x50]
test bl, 8
jne 0x10048935
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x10048949
cmp ecx, 0x29
je 0x10048949
mov ecx, dword [esi]
test bl, 0x10
jne 0x1004894b
movzx eax, word [edx]
mov ebx, eax
cmp eax, 0x7b
je 0x10048949
cmp ebx, 0x7d
jne 0x1004894b
mov ecx, edx
lea eax, [ecx + 2]
mov dword [esi], eax
mov ecx, esi
call fcn.100450b0
mov eax, dword [edi]
and eax, 0x80
je 0x10048a1e
cmp word [esi + 0x48], 0x62
jne 0x10048a1e
push 0x14
call fcn.100c742f
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 0x100489bc
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 0x10048c79
cmp word [ecx], 0x5c
jne 0x10048a0d
lea edx, [ecx + 2]
cmp edx, eax
je 0x10048a0d
mov ebx, dword [edi]
test bl, 8
jne 0x100489f7
movzx eax, word [edx]
mov ecx, eax
cmp eax, 0x28
je 0x10048a0b
cmp ecx, 0x29
je 0x10048a0b
mov ecx, dword [esi]
test bl, 0x10
jne 0x10048a0d
movzx eax, word [edx]
mov edi, eax
cmp eax, 0x7b
je 0x10048a0b
cmp edi, 0x7d
jne 0x10048a0d
mov ecx, edx
lea eax, [ecx + 2]
mov ecx, esi
mov dword [esi], eax
call fcn.100450b0
jmp 0x10048d2d
test eax, eax
je 0x10048a8a
cmp word [esi + 0x48], 0x42
jne 0x10048a8a
push 0x14
call fcn.100c742f
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 0x10048a76
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 0x10048c34
mov ecx, esi
call fcn.10049ec0
jmp 0x10048d26
cmp ecx, 0x5b
jne 0x10048afd
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x10048ae0
cmp word [ecx], 0x5c
jne 0x10048add
add ecx, 2
cmp ecx, eax
je 0x10048add
mov edx, dword [edi]
test dl, 8
jne 0x10048ac7
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x10048adb
cmp ebx, 0x29
je 0x10048adb
test dl, 0x10
jne 0x10048add
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x10048adb
cmp edx, 0x7d
jne 0x10048add
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.100450b0
mov ecx, esi
call fcn.10049d70
cmp dword [esi + 0x4c], 0x5d
jne 0x10048d50
jmp 0x10048cda
cmp ecx, 0x28
jne 0x10048bbe
mov ecx, dword [esi]
mov eax, dword [esi + 8]
cmp ecx, eax
je 0x10048b4b
cmp word [ecx], 0x5c
jne 0x10048b48
add ecx, 2
cmp ecx, eax
je 0x10048b48
mov edx, dword [edi]
test dl, 8
jne 0x10048b32
movzx eax, word [ecx]
mov ebx, eax
cmp eax, 0x28
je 0x10048b46
cmp ebx, 0x29
je 0x10048b46
test dl, 0x10
jne 0x10048b48
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x10048b46
cmp edx, 0x7d
jne 0x10048b48
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.100450b0
mov ecx, esi
call fcn.1004a010
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x10048d49
mov ecx, dword [esi]
mov edx, dword [esi + 8]
cmp ecx, edx
je 0x10048baa
cmp word [ecx], 0x5c
jne 0x10048ba7
add ecx, 2
cmp ecx, edx
je 0x10048ba7
mov edx, dword [edi]
test dl, 8
jne 0x10048b91
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x10048ba5
cmp edi, 0x29
je 0x10048ba5
test dl, 0x10
jne 0x10048ba7
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x10048ba5
cmp edx, 0x7d
jne 0x10048ba7
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.100450b0
test bl, bl
je 0x10048d2d
jmp 0x10048d26
cmp ecx, 0x5e
jne 0x10048bd5
push 0x14
call fcn.100c742f
mov ecx, eax
mov dword [ecx + 4], 2
jmp 0x10048bee
cmp ecx, 0x24
jne 0x10048c85
push 0x14
call fcn.100c742f
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 0x10048c2b
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 0x10048c79
cmp word [ecx], 0x5c
jne 0x10048c76
add ecx, 2
cmp ecx, eax
je 0x10048c76
mov edx, dword [edi]
test dl, 8
jne 0x10048c60
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x10048c74
cmp edi, 0x29
je 0x10048c74
test dl, 0x10
jne 0x10048c76
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x10048c74
cmp edx, 0x7d
jne 0x10048c76
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.100450b0
jmp 0x10048d2d
cmp ecx, 0x2a
je 0x10048d42
cmp ecx, 0x2b
je 0x10048d42
cmp ecx, 0x3f
je 0x10048d42
cmp ecx, 0x7b
je 0x10048d42
cmp ecx, 0x7d
jne 0x10048cbc
test dword [edi], 0x10000000
je 0x10048d57
jmp 0x10048ccd
cmp ecx, 0x5d
jne 0x10048ccd
test dword [edi], 0x10000000
je 0x10048d50
movzx eax, word [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1004a420
mov eax, dword [esi + 8]
mov ecx, dword [esi]
cmp ecx, eax
je 0x10048d1f
cmp word [ecx], 0x5c
jne 0x10048d1c
add ecx, 2
cmp ecx, eax
je 0x10048d1c
mov edx, dword [edi]
test dl, 8
jne 0x10048d06
movzx eax, word [ecx]
mov edi, eax
cmp eax, 0x28
je 0x10048d1a
cmp edi, 0x29
je 0x10048d1a
test dl, 0x10
jne 0x10048d1c
movzx eax, word [ecx]
mov edx, eax
cmp eax, 0x7b
je 0x10048d1a
cmp edx, 0x7d
jne 0x10048d1c
mov dword [esi], ecx
add dword [esi], 2
mov ecx, esi
call fcn.100450b0
mov ecx, esi
call fcn.1004a1f0
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x10048817
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.100450a0
push 5
call fcn.100450a0
push 4
call fcn.100450a0
push 6
call fcn.100450a0
int3