Function at 0x100044a0
Capabilities:
Parse credit card information

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100693ed
mov eax, dword fs:[0]
push eax
sub esp, 0x20
push ebx
push esi
push edi
mov eax, dword [0x1007d00c]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, ecx
xor edi, edi
mov dword [ebp - 0x24], 0
xor eax, eax
mov dword [ebp - 0x20], edi
xor edx, edx
mov dword [ebp - 0x28], vtable.CBufferT_char_.0
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x1c], edx
mov dword [ebp - 4], edx
lea ebx, [ebx]
mov bl, byte [esi + 0xa8]
test bl, bl
jne 0x10004507
cmp dword [esi + 0xac], 1
je 0x1000479b
mov ecx, dword [esi + 0xac]
test ecx, ecx
jne 0x100045be
mov cl, byte [esi + 0xb8]
cmp cl, 0x7b
jne 0x1000452d
cmp dword [esi + 0xbc], 1
je 0x10004709
cmp cl, 0x3f
jne 0x1000453f
cmp dword [esi + 0xbc], 1
je 0x10004709
cmp cl, 0x2a
jne 0x10004551
cmp dword [esi + 0xbc], 1
je 0x10004709
cmp cl, 0x2b
jne 0x10004563
cmp dword [esi + 0xbc], 1
je 0x10004709
mov cl, bl
cmp eax, 8
mov byte [ebp - 0xd], cl
mov ecx, eax
mov eax, 8
cmovl ecx, eax
lea eax, [edi + 2]
cmp eax, ecx
lea ebx, [ecx + ecx]
cmovle ebx, ecx
cmp eax, ebx
jle 0x10004597
lea ebx, [edi + 0xd]
mov eax, ebx
and eax, 0x80000007
jns 0x10004595
dec eax
or eax, 0xfffffff8
inc eax
sub ebx, eax
cmp ebx, dword [ebp - 0x18]
jle 0x100045b3
push ebx
push edx
call fcn.1000b20d
mov edx, eax
add esp, 8
mov eax, ebx
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], eax
mov al, byte [ebp - 0xd]
mov byte [edx + edi], al
jmp 0x100046ef
cmp ecx, 1
jne 0x100044f0
cmp bl, 0x29
je 0x1000479b
cmp bl, 0x7c
je 0x1000479b
test edi, edi
jg 0x100047a3
cmp bl, 0x28
je 0x1000478c
cmp bl, 0x5b
je 0x1000477d
cmp bl, 0x2e
je 0x1000477d
cmp bl, 0x77
je 0x1000477d
cmp bl, 0x57
je 0x1000477d
cmp bl, 0x73
je 0x1000477d
cmp bl, 0x53
je 0x1000477d
cmp bl, 0x64
je 0x1000477d
cmp bl, 0x44
je 0x1000477d
cmp bl, 0x5e
je 0x1000476e
cmp bl, 0x24
je 0x1000476e
cmp bl, 0x41
je 0x1000476e
cmp bl, 0x5a
je 0x1000476e
cmp bl, 0x7a
je 0x1000476e
cmp bl, 0x62
je 0x1000476e
cmp bl, 0x42
je 0x1000476e
cmp bl, 0x47
je 0x1000476e
cmp bl, 0x5c
je 0x1000475f
cmp bl, 0x6b
je 0x1000475f
cmp bl, 0x67
je 0x1000475f
cmp eax, 8
mov ecx, eax
mov eax, 8
cmovl ecx, eax
lea eax, [edi + 2]
cmp eax, ecx
lea edx, [ecx + ecx]
cmovle edx, ecx
mov ecx, edx
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x1c]
cmp eax, ecx
jle 0x100046cf
lea ecx, [edi + 0xd]
mov eax, ecx
and eax, 0x80000007
jns 0x100046ca
dec eax
or eax, 0xfffffff8
inc eax
sub ecx, eax
mov dword [ebp - 0x14], ecx
cmp ecx, dword [ebp - 0x18]
jle 0x100046ec
push ecx
push edx
call fcn.1000b20d
mov edx, eax
add esp, 8
mov eax, dword [ebp - 0x14]
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x24], edx
mov dword [ebp - 0x18], eax
mov byte [edx + edi], bl
inc edi
mov ecx, esi
mov dword [ebp - 0x20], edi
mov byte [edx + edi], 0
call fcn.10002620
mov edx, dword [ebp - 0x1c]
mov eax, dword [ebp - 0x18]
jmp 0x100044f0
test edi, edi
jne 0x1000479d
cmp eax, 8
jge 0x1000471d
mov edi, 8
jmp 0x10004730
cmp eax, 2
jge 0x10004749
lea edi, [eax + eax]
mov ecx, 8
cmp edi, 2
cmovl edi, ecx
cmp edi, eax
jle 0x10004749
push edi
push edx
call fcn.1000b20d
mov edx, eax
mov dword [ebp - 0x18], edi
add esp, 8
mov dword [ebp - 0x1c], edx
mov dword [ebp - 0x24], edx
mov byte [edx], bl
mov ecx, esi
mov dword [ebp - 0x20], 1
mov byte [edx + 1], 0
call fcn.10002620
jmp 0x100047a3
push dword [ebp + 8]
mov ecx, esi
call fcn.100063e0
jmp 0x10004835
push dword [ebp + 8]
mov ecx, esi
call fcn.100061f0
jmp 0x10004835
push dword [ebp + 8]
mov ecx, esi
call fcn.10004bb0
jmp 0x10004835
push dword [ebp + 8]
mov ecx, esi
call fcn.100053d0
jmp 0x10004835
test edi, edi
jle 0x1000482c
push 0x20
call fcn.10007286
mov ecx, dword [ebp + 8]
mov edx, eax
mov eax, dword [ebp - 0x1c]
add esp, 4
test eax, eax
mov dword [ebp - 0x14], edx
mov edi, 0x1007a5e0
cmovne edi, eax
mov eax, dword [ecx]
mov ebx, eax
mov dword [edx], vtable.CStringElxT_char_.0
and eax, 0x10
mov dword [edx + 8], 0
mov dword [ebp + 8], eax
and ebx, 8
mov eax, dword [ebp - 0x20]
mov dword [edx + 0xc], eax
inc eax
push eax
mov dword [edx + 4], vtable.CBufferT_char_.0
mov dword [edx + 0x14], eax
call fcn.1000b2b3
mov ecx, dword [ebp - 0x14]
add esp, 4
push dword [ecx + 0xc]
mov dword [ecx + 0x10], eax
push edi
push eax
mov dword [ecx + 8], eax
call fcn.100083f0
mov edx, dword [ebp - 0x14]
add esp, 0xc
mov ecx, dword [edx + 0xc]
mov eax, dword [edx + 0x10]
push edx
mov byte [ecx + eax], 0
mov ecx, esi
mov eax, dword [ebp + 8]
mov dword [edx + 0x18], eax
mov dword [edx + 0x1c], ebx
call fcn.10003840
jmp 0x10004835
push 0
mov ecx, esi
call fcn.10003510
mov esi, eax
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x10004847
push eax
call fcn.1000b298
add esp, 4
mov eax, esi
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4