Function at 0x450580
Capabilities:
Parse credit card information

Disassembly:
sub esp, 0xc
push ebx
push ebp
mov ebp, ecx
push esi
push edi
mov edi, edx
inc dword [ebp + 0x338]
mov eax, dword [ebp + 0x338]
cmp eax, dword [ebp + 0x33c]
jge 0x4509cc
xorps xmm0, xmm0
movups xmmword [edi], xmm0
mov dword [edi + 0x10], 0
mov edx, dword [ebp]
mov esi, dword [edx]
mov ecx, dword [edx + 0xc]
lea eax, [esi + 1]
cmp eax, 0x7d
ja case.0x4505cb.0
movzx eax, byte [eax + 0x450a5c]
jmp dword [eax*4 + 0x450a24]
mov ebx, 0xc01
jmp 0x450986
mov ebx, 0xc03
jmp 0x450986
mov ebx, 0xc04
jmp 0x450986
mov dword [edi + 0x10], 1
mov dword [edi + 0xc], 0
cmp ecx, 0x3f
jne 0x450614
mov ebx, 0x1802
mov dword [edi + 4], 0
jmp 0x450986
mov ebx, 0xc02
mov dword [edi + 4], 1
jmp 0x450986
mov dword [edi + 0x10], 0xffffffff
jmp 0x4505f7
mov dword [edi + 0xc], 1
mov dword [edi + 0x10], 0xffffffff
jmp 0x4505fe
mov eax, dword [edx + 4]
mov dword [esp + 0x14], eax
mov eax, dword [edx + 8]
mov dword [esp + 0x10], 0xffffffff
mov dword [esp + 0x18], eax
xor ebx, ebx
xor esi, esi
nop dword [eax + eax]
mov edx, 1
mov ecx, ebp
call fcn.0044efd0
mov edx, dword [ebp]
mov ecx, dword [edx]
lea eax, [ecx - 0x30]
cmp eax, 9
ja 0x450698
inc esi
cmp ecx, 0xff
ja 0x45068d
movsx ecx, byte [ecx + 0x5ecce0]
test ecx, ecx
jns 0x450690
or ecx, 0xffffffff
lea eax, [ebx + ebx*4]
lea ebx, [ecx + eax*2]
jmp 0x450660
cmp ecx, 0x2c
jne 0x4506d2
cmp esi, 9
jg 0x450736
cmp dword [esp + 0x10], 0xffffffff
jne 0x450736
cmp dword [edx + 0xc], 0x7d
je 0x4506bd
mov dword [esp + 0x10], ebx
jmp 0x450654
test esi, esi
je 0x450736
mov dword [edi + 0xc], ebx
mov edx, 2
mov dword [edi + 0x10], 0xffffffff
jmp 0x4506f9
cmp ecx, 0x7d
jne 0x450736
cmp esi, 9
jg 0x450736
test esi, esi
je 0x450736
mov eax, dword [esp + 0x10]
mov dword [edi + 0x10], ebx
cmp eax, 0xffffffff
je 0x4506f1
mov dword [edi + 0xc], eax
jmp 0x4506f4
mov dword [edi + 0xc], ebx
mov edx, 1
mov ecx, ebp
call fcn.0044efd0
mov eax, dword [ebp]
cmp dword [eax], 0x3f
jne 0x450725
mov edx, 1
mov dword [edi + 4], 0
mov ecx, ebp
call fcn.0044efd0
mov ebx, 2
jmp 0x450986
mov dword [edi + 4], 1
mov ebx, 2
jmp 0x450986
mov eax, dword [esp + 0x14]
xor edx, edx
mov dword [ebp + 0x310], eax
mov ecx, ebp
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x314], eax
lea eax, [ebp + 4]
mov dword [ebp], eax
call fcn.0044ee50
mov dword [edi + 8], 0x7b
jmp 0x450981
mov ebx, 0xc09
jmp 0x450986
mov ebx, 0x180a
cmp ecx, 0x62
jne 0x450783
mov ebx, 0x1805
jmp 0x450986
cmp ecx, 0x42
jne 0x450792
mov ebx, 0x1806
jmp 0x450986
cmp ecx, 0x66
jne 0x4507a3
mov dword [edi + 8], 0xc
jmp 0x450986
cmp ecx, 0x6e
jne 0x4507b4
mov dword [edi + 8], 0xa
jmp 0x450986
cmp ecx, 0x74
jne 0x4507c5
mov dword [edi + 8], 9
jmp 0x450986
cmp ecx, 0x72
jne 0x4507d6
mov dword [edi + 8], 0xd
jmp 0x450986
cmp ecx, 0x76
jne 0x4507e7
mov dword [edi + 8], 0xb
jmp 0x450986
cmp ecx, 0x63
jne 0x45081f
mov ecx, dword [edx + 0x18]
cmp ecx, 0x61
jl 0x4507f9
cmp ecx, 0x7a
jle 0x450805
lea eax, [ecx - 0x41]
cmp eax, 0x19
ja 0x4509e6
and ecx, 0x8000001f
jns 0x450812
dec ecx
or ecx, 0xffffffe0
inc ecx
mov dword [edi + 8], ecx
mov ebx, 0x240a
jmp 0x450986
cmp ecx, 0x78
je 0x450917
cmp ecx, 0x75
je 0x450917
cmp ecx, 0x64
jne 0x450840
mov ebx, 0x180b
jmp 0x450986
cmp ecx, 0x44
jne 0x45084f
mov ebx, 0x180c
jmp 0x450986
cmp ecx, 0x73
jne 0x45085e
mov ebx, 0x180d
jmp 0x450986
cmp ecx, 0x53
jne 0x45086d
mov ebx, 0x180e
jmp 0x450986
cmp ecx, 0x77
jne 0x45087c
mov ebx, 0x180f
jmp 0x450986
cmp ecx, 0x57
jne 0x45088b
mov ebx, 0x1810
jmp 0x450986
lea eax, [ecx - 0x30]
cmp eax, 9
ja 0x45090a
cmp ecx, 0x30
jne 0x4508b4
mov eax, dword [edx + 0x18]
cmp eax, ecx
jl 0x4508a8
cmp eax, 0x39
jle 0x4509e6
mov dword [edi + 8], 0
jmp 0x450986
xor esi, esi
xor ebx, ebx
nop dword [eax + eax]
mov edx, 1
mov ecx, ebp
call fcn.0044efd0
mov eax, dword [ebp]
mov ecx, dword [eax]
lea eax, [ecx - 0x30]
cmp eax, 9
ja 0x450900
cmp ecx, 0xff
ja 0x4508ec
movsx ecx, byte [ecx + 0x5ecce0]
test ecx, ecx
jns 0x4508ef
or ecx, 0xffffffff
inc ebx
lea eax, [esi + esi*4]
lea esi, [ecx + eax*2]
cmp ebx, 9
jl 0x4508c0
jmp 0x4509e6
mov ebx, 0x11
mov dword [edi + 8], esi
jmp 0x450986
test ecx, ecx
js 0x4509e6
mov dword [edi + 8], ecx
jmp 0x450986
xor edx, edx
mov ecx, ebp
call fcn.0044f250
mov dword [edi + 8], eax
mov ebx, 0xa
jmp 0x450986
cmp ecx, 0x3f
jne 0x45095a
mov eax, dword [edx + 0x18]
cmp eax, 0x3d
jne 0x45093e
mov ebx, 0x2407
jmp 0x450986
cmp eax, 0x21
jne 0x45094a
mov ebx, 0x2408
jmp 0x450986
cmp eax, 0x3a
jne 0x450a05
mov ebx, 0x2413
jmp 0x450986
mov ebx, 0xc12
jmp 0x450986
mov ebx, 0xc16
jmp 0x450986
cmp ecx, 0x5e
mov ebx, 0x1815
mov eax, 0xc14
cmovne ebx, eax
jmp 0x450986
xor ebx, ebx
jmp 0x450986
mov dword [edi + 8], esi
mov ebx, 0xc0a
mov eax, ebx
shr eax, 8
add dword [ebp], eax
mov eax, ebp
mov ecx, dword [ebp]
sub eax, ecx
add eax, 0x304
mov dword [esp + 0x18], eax
cmp eax, 0x48
jae 0x4509bf
push eax
push ecx
lea esi, [ebp + 4]
push esi
call fcn.00585c40
mov edx, dword [esp + 0x24]
add esp, 0xc
mov ecx, ebp
mov dword [ebp], esi
call fcn.0044ee50
movzx eax, bl
mov dword [edi], eax
pop edi
pop esi
pop ebp
pop ebx
add esp, 0xc
ret
mov ecx, dword [ebp + 0x304]
mov edx, 0x60671c
push str.token_limit
push 0x300086f
call fcn.0040d110
mov ecx, dword [ebp + 0x304]
mov edx, 5
push 0x873
push 0x606740
push 0x606728
call fcn.0042f580
mov ecx, dword [ebp + 0x304]
mov edx, 5
push 0x877
push 0x606764
push str.invalid_regexp_group
call fcn.0042f580
jp 0x450a2f
inc ebp
add dh, ah
add eax, 0x92a0045
inc ebp
add byte [ecx + 9], ah
inc ebp
add byte [0x2e004506], ah
push es
inc ebp
add byte [ebp + 7], ah
inc ebp
add al, dh
add eax, 0x9680045
inc ebp
add byte [edi + 7], ch
inc ebp
add ah, bl
add eax, 0x63e0045
inc ebp
add dl, dl
add eax, 0x97e0045
inc ebp
add byte [eax], al
or eax, 0xd0d0d0d
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959105
add al, byte [ebx]
add al, 5
or eax, 218957325
or eax, 218959117
or eax, 218959117
or eax, 118295821
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218695693
or cl, byte [218959117]
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 218959117
or eax, 202050829
int3