Function at 0x10027d40
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 0x10028262
cmp ecx, 0x7c
je 0x10028262
cmp ecx, 0x29
jne 0x10027d88
cmp dword [esi + 0x10], 0
jne 0x10028262
cmp ecx, ecx
jne 0x10027d88
test dword [esi + 0x50], 0x10000000
lea edi, [esi + 0x50]
je 0x10028270
jmp 0x100281de
lea edi, [esi + 0x50]
cmp ecx, 0x2e
jne 0x10027e3f
push 0x14
call fcn.10030a01
mov ecx, eax
xorps xmm0, xmm0
add esp, 4
mov dword [ebp - 4], ecx
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
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 0x10027dee
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 edx, dword [esi + 8]
cmp eax, edx
je 0x10028246
cmp byte [eax], 0x5c
jne 0x10027e37
lea ecx, [eax + 1]
cmp ecx, edx
je 0x10027e37
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10027e24
mov al, byte [ecx]
cmp al, 0x28
je 0x10027e35
cmp al, 0x29
je 0x10027e35
mov eax, dword [esi]
test dl, 0x10
jne 0x10027e37
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x10027e35
cmp dl, 0x7d
jne 0x10027e37
mov eax, ecx
inc eax
mov dword [esi], eax
jmp 0x10028246
cmp ecx, 0x5c
jne 0x10027fd9
mov eax, dword [esi]
mov edx, dword [esi + 8]
cmp eax, edx
je 0x10027e86
cmp byte [eax], cl
jne 0x10027e83
lea ecx, [eax + 1]
cmp ecx, edx
je 0x10027e83
mov edx, dword [esi + 0x50]
test dl, 8
jne 0x10027e70
mov al, byte [ecx]
cmp al, 0x28
je 0x10027e81
cmp al, 0x29
je 0x10027e81
mov eax, dword [esi]
test dl, 0x10
jne 0x10027e83
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x10027e81
cmp dl, 0x7d
jne 0x10027e83
mov eax, ecx
inc eax
mov dword [esi], eax
mov ecx, esi
call fcn.10023d90
mov eax, dword [edi]
and eax, 0x80
je 0x10027f55
cmp byte [esi + 0x48], 0x62
jne 0x10027f55
push 0x14
call fcn.10030a01
mov ecx, eax
xorps xmm0, xmm0
add esp, 4
mov dword [ebp - 4], ecx
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
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 0x10027efe
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 edx, dword [esi + 8]
cmp eax, edx
je 0x100281ae
cmp byte [eax], 0x5c
jne 0x10027f46
lea ecx, [eax + 1]
cmp ecx, edx
je 0x10027f46
mov edx, dword [edi]
test dl, 8
jne 0x10027f33
mov al, byte [ecx]
cmp al, 0x28
je 0x10027f44
cmp al, 0x29
je 0x10027f44
mov eax, dword [esi]
test dl, 0x10
jne 0x10027f46
mov dl, byte [ecx]
cmp dl, 0x7b
je 0x10027f44
cmp dl, 0x7d
jne 0x10027f46
mov eax, ecx
inc eax
mov ecx, esi
mov dword [esi], eax
call fcn.10023d90
jmp 0x10028254
test eax, eax
je 0x10027fcd
cmp byte [esi + 0x48], 0x42
jne 0x10027fcd
push 0x14
call fcn.10030a01
mov ecx, eax
xorps xmm0, xmm0
add esp, 4
mov dword [ebp - 4], ecx
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
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 0x10027fb9
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 0x10028173
mov ecx, esi
call fcn.1002a910
jmp 0x1002824d
cmp ecx, 0x5b
jne 0x10028036
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x10028019
cmp byte [eax], 0x5c
jne 0x10028017
inc eax
cmp eax, ecx
je 0x10028017
mov ecx, dword [edi]
test cl, 8
jne 0x10028004
mov dl, byte [eax]
cmp dl, 0x28
je 0x10028015
cmp dl, 0x29
je 0x10028015
test cl, 0x10
jne 0x10028017
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10028015
cmp cl, 0x7d
jne 0x10028017
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10023d90
mov ecx, esi
call fcn.1002a7e0
cmp dword [esi + 0x4c], 0x5d
jne 0x10028277
jmp 0x1002820b
cmp ecx, 0x28
jne 0x100280e3
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x1002807a
cmp byte [eax], 0x5c
jne 0x10028078
inc eax
cmp eax, ecx
je 0x10028078
mov ecx, dword [edi]
test cl, 8
jne 0x10028065
mov dl, byte [eax]
cmp dl, 0x28
je 0x10028076
cmp dl, 0x29
je 0x10028076
test cl, 0x10
jne 0x10028078
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10028076
cmp cl, 0x7d
jne 0x10028078
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10023d90
mov ecx, esi
call fcn.1002aa60
cmp dword [esi + 0x4c], 0x29
mov bl, al
jne 0x10028270
mov eax, dword [esi]
mov ecx, dword [esi + 8]
cmp eax, ecx
je 0x100280cf
cmp byte [eax], 0x5c
jne 0x100280cd
inc eax
cmp eax, ecx
je 0x100280cd
mov edx, dword [edi]
test dl, 8
jne 0x100280ba
mov cl, byte [eax]
cmp cl, 0x28
je 0x100280cb
cmp cl, 0x29
je 0x100280cb
test dl, 0x10
jne 0x100280cd
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100280cb
cmp cl, 0x7d
jne 0x100280cd
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10023d90
test bl, bl
je 0x10028254
jmp 0x1002824d
cmp ecx, 0x5e
jne 0x10028107
push 0x14
call fcn.10030a01
mov ecx, eax
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
mov dword [ecx + 4], 2
jmp 0x1002812d
cmp ecx, 0x24
jne 0x100281ba
push 0x14
call fcn.10030a01
mov ecx, eax
xorps xmm0, xmm0
movups xmmword [ecx], xmm0
mov dword [ecx + 0x10], 0
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 0x1002816a
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 + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x100281ae
cmp byte [eax], 0x5c
jne 0x100281ac
inc eax
cmp eax, ecx
je 0x100281ac
mov edx, dword [edi]
test dl, 8
jne 0x10028199
mov cl, byte [eax]
cmp cl, 0x28
je 0x100281aa
cmp cl, 0x29
je 0x100281aa
test dl, 0x10
jne 0x100281ac
mov cl, byte [eax]
cmp cl, 0x7b
je 0x100281aa
cmp cl, 0x7d
jne 0x100281ac
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10023d90
jmp 0x10028254
cmp ecx, 0x2a
je 0x10028269
cmp ecx, 0x2b
je 0x10028269
cmp ecx, 0x3f
je 0x10028269
cmp ecx, 0x7b
je 0x10028269
cmp ecx, 0x7d
jne 0x100281f1
test dword [edi], 0x10000000
je 0x1002827e
jmp 0x100281fe
cmp ecx, 0x5d
jne 0x100281fe
test dword [edi], 0x10000000
je 0x10028277
movzx eax, byte [esi + 0x48]
lea ecx, [esi + 0x24]
push eax
call fcn.1002ae30
mov ecx, dword [esi + 8]
mov eax, dword [esi]
cmp eax, ecx
je 0x10028246
cmp byte [eax], 0x5c
jne 0x10028244
inc eax
cmp eax, ecx
je 0x10028244
mov edx, dword [edi]
test dl, 8
jne 0x10028231
mov cl, byte [eax]
cmp cl, 0x28
je 0x10028242
cmp cl, 0x29
je 0x10028242
test dl, 0x10
jne 0x10028244
mov cl, byte [eax]
cmp cl, 0x7b
je 0x10028242
cmp cl, 0x7d
jne 0x10028244
mov dword [esi], eax
inc dword [esi]
mov ecx, esi
call fcn.10023d90
mov ecx, esi
call fcn.1002ac00
mov ecx, dword [esi + 0x4c]
mov al, 1
cmp ecx, 0xffffffff
jne 0x10027d57
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push 0xa
call fcn.10023d80
push 5
call fcn.10023d80
push 4
call fcn.10023d80
push 6
call fcn.10023d80
int3