Function at 0x10004710
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x10023b38
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push esi
push edi
mov eax, dword [0x10031be4]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
xor edx, edx
mov dword [ebp - 0x28], 0
xor ecx, ecx
mov dword [ebp - 0x24], edx
xor edi, edi
mov dword [ebp - 0x2c], vtable.CBufferT_char_.0
mov dword [ebp - 0x1c], ecx
mov dword [ebp - 0x20], edi
mov dword [ebp - 4], edi
nop dword [eax]
mov al, byte [esi + 0xa8]
mov byte [ebp - 0xd], al
test al, al
jne 0x1000477a
cmp dword [esi + 0xac], 1
je 0x10004a9e
cmp dword [esi + 0xac], 0
jne 0x10004878
mov al, byte [esi + 0xb8]
cmp al, 0x7b
jne 0x1000479e
cmp dword [esi + 0xbc], 1
je 0x100049ed
cmp al, 0x3f
jne 0x100047af
cmp dword [esi + 0xbc], 1
je 0x100049ed
cmp al, 0x2a
jne 0x100047c0
cmp dword [esi + 0xbc], 1
je 0x100049ed
cmp al, 0x2b
jne 0x100047d1
cmp dword [esi + 0xbc], 1
je 0x100049ed
cmp dword [ebp - 0x1c], 8
mov eax, 8
cmovl ecx, eax
lea eax, [edx + 2]
cmp eax, ecx
lea edi, [ecx + ecx]
cmovle edi, ecx
mov ecx, edi
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x20]
cmp eax, ecx
jle 0x1000480a
lea ecx, [edx + 0xd]
mov eax, ecx
and eax, 0x80000007
jns 0x10004805
dec eax
or eax, 0xfffffff8
inc eax
sub ecx, eax
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x1c]
jle 0x1000482a
push ecx
push edi
call fcn.1001804e
mov edx, dword [ebp - 0x24]
mov edi, eax
mov eax, dword [ebp - 0x14]
add esp, 8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], eax
mov cl, byte [ebp - 0xd]
mov byte [edi + edx], cl
inc edx
mov dword [ebp - 0x24], edx
mov byte [edi + edx], 0
movups xmm0, xmmword [esi + 0xa8]
movups xmmword [esi + 0x98], xmm0
movups xmm0, xmmword [esi + 0xb8]
movups xmmword [esi + 0xa8], xmm0
movups xmm0, xmmword [esi + 0xc8]
movups xmmword [esi + 0xb8], xmm0
mov ecx, esi
call fcn.10006170
test eax, eax
je 0x10004862
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
jmp 0x10004760
cmp dword [esi + 0xac], 1
jne 0x10004760
cmp al, 0x29
je 0x10004a9e
cmp al, 0x7c
je 0x10004a9e
test edx, edx
jg 0x10004aa6
cmp al, 0x28
je 0x10004a8a
cmp al, 0x5b
je 0x10004a76
cmp al, 0x2e
je 0x10004a76
cmp al, 0x77
je 0x10004a76
cmp al, 0x57
je 0x10004a76
cmp al, 0x73
je 0x10004a76
cmp al, 0x53
je 0x10004a76
cmp al, 0x64
je 0x10004a76
cmp al, 0x44
je 0x10004a76
cmp al, 0x5e
je 0x10004a62
cmp al, 0x24
je 0x10004a62
cmp al, 0x41
je 0x10004a62
cmp al, 0x5a
je 0x10004a62
cmp al, 0x7a
je 0x10004a62
cmp al, 0x62
je 0x10004a62
cmp al, 0x42
je 0x10004a62
cmp al, 0x47
je 0x10004a62
cmp al, 0x5c
je 0x10004a4e
cmp al, 0x6b
je 0x10004a4e
cmp al, 0x67
je 0x10004a4e
mov al, byte [esi + 0xa8]
cmp dword [ebp - 0x1c], 8
mov byte [ebp - 0xd], al
mov eax, 8
cmovl ecx, eax
lea eax, [edx + 2]
cmp eax, ecx
lea edi, [ecx + ecx]
cmovle edi, ecx
mov ecx, edi
mov dword [ebp - 0x14], edi
mov edi, dword [ebp - 0x20]
cmp eax, ecx
jle 0x1000497f
lea ecx, [edx + 0xd]
mov eax, ecx
and eax, 0x80000007
jns 0x1000497a
dec eax
or eax, 0xfffffff8
inc eax
sub ecx, eax
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x1c]
jle 0x1000499f
push ecx
push edi
call fcn.1001804e
mov edx, dword [ebp - 0x24]
mov edi, eax
mov eax, dword [ebp - 0x14]
add esp, 8
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], eax
mov al, byte [ebp - 0xd]
mov byte [edi + edx], al
inc edx
mov dword [ebp - 0x24], edx
mov byte [edi + edx], 0
movups xmm0, xmmword [esi + 0xa8]
movups xmmword [esi + 0x98], xmm0
movups xmm0, xmmword [esi + 0xb8]
movups xmmword [esi + 0xa8], xmm0
movups xmm0, xmmword [esi + 0xc8]
movups xmmword [esi + 0xb8], xmm0
mov ecx, esi
call fcn.10006170
test eax, eax
je 0x100049d7
mov edx, dword [ebp - 0x24]
mov ecx, dword [ebp - 0x1c]
jmp 0x10004760
test edx, edx
jne 0x10004aa0
cmp ecx, 8
mov edx, 8
mov eax, ecx
cmovl eax, edx
cmp eax, 2
lea edx, [eax + eax]
cmovge edx, eax
mov eax, 8
cmp edx, 2
cmovl edx, eax
mov dword [ebp - 0x14], edx
cmp edx, ecx
jle 0x10004a35
push edx
push edi
call fcn.1001804e
mov edi, eax
add esp, 8
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x20], edi
mov dword [ebp - 0x28], edi
mov dword [ebp - 0x1c], eax
mov cl, byte [ebp - 0xd]
mov byte [edi], cl
mov ecx, esi
mov dword [ebp - 0x24], 1
mov byte [edi + 1], 0
call fcn.10008bd0
jmp 0x10004aa6
push dword [ebp + 8]
mov ecx, esi
call fcn.10002200
mov dword [ebp - 0x14], eax
mov esi, eax
jmp 0x10004b5c
push dword [ebp + 8]
mov ecx, esi
call fcn.100026c0
mov dword [ebp - 0x14], eax
mov esi, eax
jmp 0x10004b5c
push dword [ebp + 8]
mov ecx, esi
call fcn.10002950
mov dword [ebp - 0x14], eax
mov esi, eax
jmp 0x10004b5c
push dword [ebp + 8]
mov ecx, esi
call fcn.10003220
mov dword [ebp - 0x14], eax
mov esi, eax
jmp 0x10004b5c
test edx, edx
jle 0x10004b51
push 0x20
call fcn.100142a7
mov ecx, eax
add esp, 4
mov dword [ebp - 0x14], ecx
mov dword [ebp - 0x18], ecx
test ecx, ecx
je 0x10004b3e
mov eax, dword [ebp - 0x20]
mov edi, 0x10028fec
test eax, eax
cmovne edi, eax
mov eax, dword [ebp + 8]
mov eax, dword [eax]
mov dword [ecx], vtable.CStringElxT_char_.0
mov dword [ebp + 8], eax
mov eax, dword [ebp - 0x24]
mov dword [ecx + 0xc], eax
inc eax
push eax
mov dword [ecx + 8], 0
mov dword [ecx + 4], vtable.CBufferT_char_.0
mov dword [ecx + 0x14], eax
call fcn.10018043
mov ecx, dword [ebp - 0x14]
push dword [ecx + 0xc]
mov dword [ecx + 0x10], eax
push edi
push eax
mov dword [ecx + 8], eax
call fcn.10015a50
mov edx, dword [ebp - 0x14]
add esp, 0x10
mov edi, dword [ebp - 0x20]
mov ecx, dword [edx + 0x10]
mov eax, dword [edx + 0xc]
push edx
mov byte [ecx + eax], 0
mov ecx, dword [ebp + 8]
mov eax, ecx
and ecx, 8
and eax, 0x10
mov dword [edx + 0x1c], ecx
lea ecx, [esi + 0x14]
mov dword [edx + 0x18], eax
call fcn.10009150
mov esi, dword [ebp - 0x14]
jmp 0x10004b5c
xor edx, edx
lea ecx, [esi + 0x14]
push edx
mov dword [ebp - 0x14], edx
call fcn.10009150
mov esi, dword [ebp - 0x14]
jmp 0x10004b5c
push 0
mov ecx, esi
call fcn.10006980
mov esi, eax
test edi, edi
je 0x10004b69
push edi
call fcn.1001803e
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
mov esp, ebp
pop ebp
ret 4